在DOM渲染之前,在document.ready()之前获取HTML标记

时间:2010-07-06 16:28:08

标签: javascript html dom browser

我正在寻找这样一种方法,它允许我在DOM渲染之前添加,删除页面的DOM对象,我的意思是我在页面的head标签中包含的第一个JS可以出现,查找一个特定的标签说,甚至在呈现之前就从HTML中删除它,我知道javascript调用是阻塞的,因为浏览器将呈现我的页面并将进入我的javascript头部它将阻止呈现和下载并执行javascript,现在在执行时我需要控制先前下载的等待呈现的HTML。 有没有这样的方式?

我已经尝试过使用文档属性但是我没有在我的js中获取标签,这些标签来自html中的这个js。

6 个答案:

答案 0 :(得分:0)

</body>之前插入JavaScript。

答案 1 :(得分:0)

你必须小心这一点,因为在完成之前尝试修改DOM会导致IE出现问题。特别是在IE6中,这会导致非常不友好的错误消息,在接受之后会导致标准的“此页面无法显示”页面。虽然在IE8中没有完全记录,但这个问题很容易被吞噬。

如果可能,我建议在通过代理或浏览器扩展程序到达渲染器之前从html中删除所需的标记。如果这些不是真的可行,那么我不确定你能做什么。

答案 2 :(得分:0)

也许另一种攻击问题的方法是从另一个方向。从隐藏的所有内容开始,然后只在加载页面时显示所需的元素。不确定您的问题域是否允许,但它可能适合您。

答案 3 :(得分:0)

那么,您想要阻止页面中的脚本执行吗?如果您可以将自己的脚本放在任何地方,可以尝试

<script>
document.write("<!--");
</script>
<script>// offending script</script>
<script>
document.write("-->");
</script>

(警告:这种方式很疯狂。)

答案 4 :(得分:0)

只需将脚本标记推送到noscript标记内,然后在需要时将其删除,然后无论是否启用了javascript,脚本都会在从noscript标记中拉出之后才会执行。 注意:您应该在注释标记中包含javascript,以防止不支持noscript标记的浏览器执行它。

答案 5 :(得分:-1)

这个问题的一个简短而简单的答案是否定的,这是不可能的