Javascript 执行动态注入<;脚本>;s不支持Firefox(47.0)
我有一个表单的AJAX调用返回的HTML片段Javascript 执行动态注入<;脚本>;s不支持Firefox(47.0),javascript,jquery,ajax,code-injection,script-tag,Javascript,Jquery,Ajax,Code Injection,Script Tag,我有一个表单的AJAX调用返回的HTML片段 <SCRIPT src="..." type="text/javascript"></SCRIPT> <SCRIPT type="text/javascript"> function showForumGrid() { ... }; function f() { ...} </SCRIPT> <DIV id="div1"> ... <IMG id="dummyBody"
<SCRIPT src="..." type="text/javascript"></SCRIPT>
<SCRIPT type="text/javascript">
function showForumGrid()
{ ... };
function f()
{ ...}
</SCRIPT>
<DIV id="div1">
...
<IMG id="dummyBody" src="..." onload="showForumGrid()">
</DIV>
这在Chrome中运行良好,但在Firefox中,我得到了错误引用错误:showForumGrid未定义这是因为当您在文档中附加
节点时,在解析文档后,它们不再像以前一样被视为同步。(即使设置参数也不起作用) 以下是一个简化的示例:
var external=document.createElement('script');
var inner=external.cloneNode();
external.src='data:application/javascript,console.log(“外部”);
inner.innerHTML='console.log(“inner”);
文件。头。子文件(外部);
文件。头。子文件(内部)代码>不要只是混合使用JS和jQuery,这远远不够可读。您是如何包含脚本的?页面中的ajax请求在哪里。我们需要弄清楚它是什么时候被触发的,这样我们才能提供解决方案。请用正确的脚本名发布HTML,并向我们展示Ajax启动。。
var x=document.getElementById(snippet_container_id);
//$(x).html(ajaxData);
var domFragment = $.parseHTML($.trim(ajaxData),document,true);
$(x).empty();
$(x).prepend(domFragment);