[英]Getting the script tag using getElementsByTagName inconsistent across browsers
我有以下代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
var script_obj = document.getElementsByTagName('script')
alert(typeof script_obj);
});
</script>
当我在Firefox(v21)和Chrome(v29)中运行此程序时,得到的是object
,但是在Safari(v5)中,我得到了function
。
为什么是这样?!
在脚本的其余部分中,我遍历script_obj
以获取.src
数据,但是确定haystack
长度的count
函数(即script_obj
)具有一个检查,如果该haystack
不是array
或object
则该检查返回false
,因此在Safari中失败。 还有另一种方法可以代替使用document.getElementsByTagName('script')
吗?
document.getElementsByTagName()
返回一个NodeList 。 尽管NodeList不是Array,但它确实具有length属性,就像Array一样。 因此,您无需执行任何特殊操作即可计算其中的项目数。 不知道计数功能在做什么,但是您可以执行以下操作:
> var script_obj = document.getElementsByTagName('script');
> alert(script_obj.length); // will alert '22' or whatever
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.