我有以下代码,可以在chome中正常使用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
//<![CDATA[
!function (){
window.stop();
var html = '<!DOCTYPE html>\n<html>\n<head>\n <meta charset="utf-8">\n</head>\n<body>\n \<script>console.log("loaded");<\/script>\ntext\n</body>\n</html>';
document.documentElement.innerHTML = html;
}();
//]]>
</script>
</body>
</html>
它在控制台中打印“已加载”。 firefox不能使用相同的代码,它不运行脚本,只打印文本。
(如果你很好奇我为什么需要这个,你可以在这里找到它:https://stackoverflow.com/a/30933972/607033)
我尝试过这样的可能解决方案:https://stackoverflow.com/a/20584396/607033但它们不起作用。知道如何解决这个问题吗?
注意:HTML中有许多脚本,例如bootstrap,jquery,facebook,google等...,而不仅仅是一个内联脚本。
答案 0 :(得分:0)
我认为firefox无法在不离开实际页面的情况下用javascript替换完整的HTML文档。重用原始文档并仅替换head和body标记的解决方法:
$('html').html(html);
自动执行此操作:它会删除HTML标记,注入头部和正文并加载脚本。