我正在使用dojo编写单页网站。教程描述了如何使用dojo / request来发出ajax请求。我可以简单地发出请求,接收html内容并将其插入到内容面板(div元素)中。这也在样本中得到证明。
当我开始加载具有某些所需功能的真实内容时,我还需要在ajax调用请求的内容中添加一个脚本元素。问题是没有执行带有ajax内容的脚本。
我尝试使用contentNode.innerHTML = data;
和domConstruct.place(data, contentNode, "only");
在这两种情况下都会显示内容,但不会执行内容中的脚本。
据我所知,还有dijit.layout.ContentPane
更适合在设计时加载内容,而非运行时。
我无法在加载内容之前执行脚本,因为在每个页面中都有一些我需要处理的元素,并且在加载主页面时它们很简单。例如,我需要更改表单提交行为。
那么我该怎样做才能使加载的脚本执行?
答案 0 :(得分:1)
有一个dojox.layout.ContentPane
可以从加载的内容中执行脚本。
请参阅官方文档here。它明确地解决了你的用例
如果您需要在内容窗格中执行JavaScript,请使用 dojox / layout / ContentPane而不是dijit / layout / ContentPane和set executeScripts =”真”。实际上executeScripts默认为“true”但是 对于你正在使用的原因,可能是一个视觉提示 DojoX中/布局/ contentPane中。