【发布时间】:2013-08-21 16:24:18
【问题描述】:
假设我有一个名为 html 的字符串,其中包含:
<script>
document.write("Some random stuff here");
</script>
<script src="someremotejsfile"></script>
我想在 iframe 窗口中动态显示它。
我最初的解决方案是:
document.open();
document.write(html);
document.close();
但这会导致 Firefox 出现问题,即使内容已经加载,微调器也会一直旋转,就好像它永远在加载一样。我的下一个尝试是:
document.body.innerHTML = html;
这会将脚本添加到正文中,但实际上并没有执行它们。所以最后我尝试了:
div = document.createElement("div");
div.innerHTML = html;
document.body.appendChild(div);
但这似乎也没有执行 html 字符串中的脚本。
所以我的问题是,给定一个 html 字符串,我如何将它动态添加到页面中?例如,它可以是一个广告标签,其中包含任意数量的脚本和其他 html 元素。我无法控制该 html 字符串中的内容。对我来说这是一个黑匣子。我只需要能够获取那长长的 html 字符串并将其加载到窗口中(在本例中为 iframe)。
【问题讨论】:
-
我有限的知识表明这是不可能的。您无法获得的更接近的是在 a 中评估 only 脚本(不带标签),例如细绳。我希望我错了,因为这很有趣。 +1
-
所以这个叫做 'html' 的字符串是一个黑盒子...但是它是整个网页(包括 html 和 head 元素)还是只是部分 html?它是否包含您要执行的脚本?我认为您将不得不将“html”字符串分开...
-
一个有用的网站:4 ways to dynamically load external javascript files。我偶尔会提到它。
-
可能看起来很奇怪,但您可能可以
document.write页面上的那个“黑匣子”...
标签: javascript html dom iframe