javascript – [function] .apply()在IE中导致“JScript对象预期”错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – [function] .apply()在IE中导致“JScript对象预期”错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1047字,纯文字阅读大概需要2分钟。
内容图文
以下代码行导致IE中出现“JScript对象预期”错误:
hideElements.apply(window, elements);
根据IE,“预期的JScript对象”是指hideElements,它是一个将任意数量的HTML对象作为参数并隐藏它们的函数.
具体来说,我通过调用getElementsByTagName来检索HTML对象数组,并且我希望将此数组作为函数hideElements的参数列表传递. JS函数apply()正是我在这种情况下所需要的.我知道我肯定会以不同的方式编写我的代码,但由于这在Firefox和Chrome上完美运行,并且在技术上是正确的,我真的很想知道为什么IE卡在那里.
我确定,当执行该行时:
> window不为null且类型为Window;
>元素不为null且类型为HTMLCollection;和
> hideElements是一个功能齐全的JS函数(它可以完全独立工作,并在执行上面的代码时完全加载).
解决方法:
getElementsByTagName返回一个nodeList. apply期望第二个参数是一个数组.如果将元素转换为真实数组(使用循环),它应该可以工作.
注意:在IE< 9中,不可能使用Array.prototype.slice.call(elements),因此循环是创建数组最安全的方法,如:
function nodeList2Array(nodes){
var arr = [];
for (var i=1; i<nodes.length;(i+=1)){
arr.push(nodes[i]);
}
return arr;
}
now:hideElements.apply(window,nodeList2Array(elements));应该管用.
内容总结
以上是互联网集市为您收集整理的javascript – [function] .apply()在IE中导致“JScript对象预期”错误全部内容,希望文章能够帮你解决javascript – [function] .apply()在IE中导致“JScript对象预期”错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。