1

我创建了两个名为new_/Scripts/My.JSON2.jsnew_/Script/My.RestOperations.js的 Javascript 网络资源,其中包含名为 MYTEST 的命名空间。在同一个地方,我创建了一个 html 页面以在单击站点地图项时加载,名称为new_/Webpages/My.sitemapPage.htm。我正在尝试从 MYTEST 命名空间下的“new_/Scripts/My.RestOperations.js”文件中的 html 页面中的 JScript 调用一些 JSON 函数。在 html 页面中,我添加了对 JScript 文件的引用,如下所示:

<SCRIPT type=text/javscript src="../Scripts/My.RestOperations.js"></SCRIPT>   
<SCRIPT type=text/javscript scr="../Scripts/My.JSON2.js"></SCRIPT>

<SCRIPT type=text/javscript>
function=pageOnLoad()
{
 MYTEST.retrieveMultiple(dataSet,filter,callBackSuccess,callBackError);
}
</SCRIPT>

但我仍然收到错误消息:

'MYTEST' 未定义。

4

2 回答 2

1

您可以使用 访问父窗口的window.parent

window.parent.MYTEST.retrieveMultiple(dataSet,filter,callBackSuccess,callBackError);

如果您尝试在加载父窗口的 javascript 文件之前执行 webresource 中的代码,您还必须放入 try/catch 块来处理尚未加载父文件的事实。

try {
    var check = window.parent.MYTEST;
} catch (e) {
    setTimeout(function () { pageOnLoad(); }, 1000);
    return;
}
于 2012-02-23T15:35:56.447 回答
0

有两个步骤。

  1. 例如,找到您要引用的网络资源的 url http://servername/organization/WebResources/scriptfile(如果它没有显示在 url 中,则不要包括扩展 js)

  2. 将该url相对地放入html页面,即如果html文件也在WebResources文件夹中,那么只会 <script type="text/javascript" src="scriptfile"></script>起作用。

请注意,当您从解决方案甚至扩展名中打开它时,密钥不会放置任何未显示在资源 url 中的额外内容。

于 2014-03-10T20:28:55.547 回答