包括一个带有innerHTML转义字符的脚本



我正试图在innerHTML:中输出一个<script>元素

<script type="text/javascript">
    function fileManager()
    {
        data = document.getElementById("FM");
        data.innerHTML = "<script type='text/javascript' src='functions.js'></script>";
    }
</script>
    <div id="FM"></div>
    <ul id="show-menu">
        <li onClick="fileManager()">File Manager
    </ul>

脚本的innerHTML部分运行得很好,只是双引号(")中的转义字符有问题。整个<script type='text/javascript' src='functions.js'></script>似乎坏了/写错了,我似乎不知道它出了什么问题。

如果您想知道,functions.js文件仅包含用于测试目的的document.write("test");

由于某种未知的原因,这不起作用。结果是一个破碎的页面,我在脚本中看到了一些其他函数,这没有意义。如何正确逃离?

脚本中的文字<script>/</script>实际上破坏了包含脚本本身的html标记。还有一个问题是.innerHTML不执行或加载脚本。所以我建议:

function fileManager()
{
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = 'functions.js';
    document.getElementById("FM").appendChild(script);
}

当您尝试使用javascript插入脚本标记时,某些浏览器中会出现一个错误。你需要做的是像这样分解脚本标签:

"<scr"+"ipt..........</scr"+"ipt>"

这会奏效的。

最新更新