Javascript 执行动态注入<;脚本>;s不支持Firefox(47.0)

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"

我有一个表单的AJAX调用返回的HTML片段

<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);