>假设我有一个主页,它使用 iframe 对象作为缓冲区从同一域加载外部页面(出于安全原因)。我选择这种方法是因为XMLHttpRequest无法在所有浏览器中从字符串外部xhtml内容中解析。
在iframe 中加载内容后,我使用 "contentDocument" 属性"窃取"它的内容,然后将所有 css 样式和脚本标签附加到父级的标头中,并最终删除 iframe(请注意,CSS 和脚本在第二个文档中是内联的,因此根本没有外部链接)。
现在一切都很好 - 我可以调用新的javascript函数,css也可以工作。
我的问题是:我能够管理删除新附加的 css 样式,但使用 javascript 不起作用。是否有任何解决方案可以从同一文档中删除标题新添加的脚本标签?
我什至在绝望中尝试了这个(css 消失了,javascript 仍然存在......
function emptyheader()
{
/* var container = document.getElementById("container"); */
var header = document.getElementsByTagName('head')[0];
/* styles = header.getElementsByTagName('style'); */
/* scripts = header.getElementsByTagName('script'); */
while(header.hasChildNodes())
header.removeChild(header.firstChild);
}
我不是岸上,我明白你的意思。但是这里有一个示例,说明如何添加然后重新编写脚本(据我所知,将脚本标签添加到正文是可以的)。
<script>
function addAndRemoveScript() {
var a = document.createElement("script");
a.src = "yourscript.js";
document.body.appendChild(a);
document.body.removeChild(document.body.getElementsByTagName("script")[0])
document.body.removeChild(document.body.getElementsByTagName("script")[0])
}
window.onload = addAndRemoveScript();
</script>