当站点为您提供一些JavaScript,并将其粘贴到网页中以在该位置插入内容时,脚本如何确定其在DOM中的当前位置?不使用document.write?在<script>标记位置插入元素
感谢,
尼克
当站点为您提供一些JavaScript,并将其粘贴到网页中以在该位置插入内容时,脚本如何确定其在DOM中的当前位置?不使用document.write?在<script>标记位置插入元素
感谢,
尼克
在脚本包含的时候,页面中的最后一个<script>
将是当前的;该页面的其余部分尚未被解析。所以:
<script type="text/javascript">
var scripts= document.getElementsByTagName('script');
var this_script= scripts[scripts.length-1];
// Something that happens later...
//
setTimeout(function() {
var div= document.createElement('div');
div.appendChild(document.createTextNode('Hello!'));
this_script.parentNode.insertBefore(div, this_script);
}, 5000);
</script>
这个只要成立的脚本标签不使用defer
,或HTML5的async
。
没有意识到它会以这种方式工作,但非常有意义,谢谢! – 2010-05-07 16:29:01
我不明白为什么这样的脚本会关心他们在DOM的位置,但我想这是可能确定。也许可以使用类似document.scripts开始搜索。
我没有看到Mozilla参考文献中的document.scripts: https://developer.mozilla.org/zh/DOM/document 所以我猜这是一个IE浏览器的东西?可能是错误的,但我正在运行Chrome,不想检查! :)虽然谢谢。 – 2010-05-07 16:28:26
这是来自IE的扩展,也可以在WebKit和Opera上找到。虽然它不会给你任何'getElementsByTagName'还没有做的事情,但它从来没有真正被使用过。 – bobince 2010-05-07 22:31:37
你有没有一个正在完成的地方的例子? – 2010-05-07 15:15:30