我正在尝试输出 <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/