我在另一个页面中使用了一个html页面资源。
<div class="appTrailingAccordionContainer" data-dojo-type="dijit/layout/AccordionContainer" data-dojo-props="minSize:20, region:'trailing', splitter:true">
<div data-dojo-type="dijit/layout/AccordionPane" title="Chat" href = "OnlineUsers.jsp">
</div>
</div>
在单个页面中,onlineUsers.jsp页面工作正常,但在此页面中它给出了
ReferenceError: ajaxReqForLoadOnlineGrid is not defined
ajaxReqForLoadOnlineGrid是onlineUsers.jsp页面中的一个函数。它的错误是什么?
答案 0 :(得分:0)
嗯,就像错误说的那样简单,函数没有定义。如果它在您单独访问页面时有效,但在通过href
属性使用它时不起作用,那么您可能在 OnlineUsers.jsp 上定义了该函数。
您应该知道dijit/layout/AccordionPane
模块(类似于dijit/layout/ContentPane
)不允许在异步加载的页面内执行脚本。
因此,要么将ajaxReqForLoadOnlineGrid()
函数移动到父JSP页面,要么使用dojox/layout/ContentPane
模块。该模块有一个名为executeScripts
的属性,允许您在远程页面上执行脚本。
无论如何,dijit/layout/AccordionPane
模块已被弃用,转移到dijit/layout/ContentPane
或dojox/layout/ContentPane
并不是一件坏事。