2

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

<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");用于测试目的。

由于某些未知原因,这不起作用。结果是一个损坏的页面,我在脚本中看到了一些其他功能,这没有意义。如何正确逃避它?

4

2 回答 2

4

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

function fileManager()
{
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = 'functions.js';
    document.getElementById("FM").appendChild(script);
}
于 2012-07-13T20:46:56.450 回答
0

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

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

这将起作用。

于 2012-07-13T20:47:57.317 回答