javascript - 包含带有innerHTML 的脚本 - 转义字符

标签 javascript escaping innerhtml

我正在尝试输出 <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");用于测试目的。

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

最佳答案

The literal <script> / </script> inside the script is actually breaking the html tag that contains the script itself 。还有一个问题是 .innerHTML does not execute or load scripts 。所以我建议:

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

关于javascript - 包含带有innerHTML 的脚本 - 转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478085/

相关文章:

javascript - JavaScript 可以访问 &lt;script src =""> 元素的源代码吗?

javascript - Mocha 导入外部脚本失败

javascript - 我如何在 JavaScript 中获取 innerHTML 的长度(总字符数)?

string - 如何用 Salt 转义复杂的字符串?

javascript - 排除转义字符串中的字符

javascript - 在javascript中设置li标签下div标签的innerHTML

css - Angular:单元格的 innerHtml 中的 CSS 类用法

javascript - 为按钮制作一个通用的加载图标?

javascript - ANDROID WebView javascript 重定向不起作用

javascript - 所有浏览器引擎都将 "\<"视为 "<"并将 "\>"视为 ">"吗?