我正在尝试在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");
用于测试目的。
由于某些未知原因,这不起作用。结果是一个破碎的页面,我在脚本中看到了其他一些功能,但它没有意义。我该如何正确地逃避它?
答案 0 :(得分:4)
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);
}
答案 1 :(得分:0)
当您尝试使用javascript插入脚本标记时,某些浏览器中存在一个错误。你需要做的就是像这样分解脚本标签:
"<scr"+"ipt..........</scr"+"ipt>"
这样可行。