如何解决IE对象不支持此属性或方法
| 这可能是许多问题的开始。 我已经完成了网站的构建,并且正在使用Firefox查看和测试该网站。我现在正在IE修复中,并停留在第一个JavaScript错误上,而这仅是IE似乎引起了轩然大波。 我运行IE 8 JavaScript调试器并得到以下信息:Object doesn\'t support this property or method app.js,line 1 character 1
app.js的来源(前5行):
var menu = {};
menu.current = \"\";
menu.first = true;
menu.titleBase = \"\";
menu.init = function(){...
我已经在Webkit浏览器中测试了该站点,并且在该站点中运行良好。
我该怎么做才能解决此问题?该站点是jQuery密集型站点,因此我放弃了使其在IE6中运行的希望,但我希望它在所有其他版本中都能正常工作。
更新:我已经将网站的最新版本上传到http://www.frankychanyau.com
解决方法
在IE8中,您的代码导致jQuery在此行失败
$(\"title\").text(title);
在menu.updateTitle()函数中。做一些研究(即在Google上搜索),似乎您可能必须在IE中使用document.title
。
, 您的问题(大概)在这里:
menu.updateTitle = function(hash){
var title = menu.titleBase + \": \" + $(hash).data(\"title\");
$(\"title\").text(title); // IE fails on setting title property
};
我不必费心寻找为什么jQuery的text()
方法在这里失败了,但是确实如此。无论如何,不使用它要简单得多。文档对象的title属性是文档的title元素的内容。它未标记为只读,因此您只需设置一个新值即可设置其值:
document.title = title;
IE对此感到满意。
最好在可能的情况下直接访问DOM属性,而不使用jQuery的等效方法。属性访问的麻烦程度较小,并且(非常快)得多,通常使用较少的代码即可。
, 好吧,您的第1行肯定看起来直截了当。假设错误行和错误号不是错误的,那让我认为您的js文件的第一部分中有一个隐藏的字符,该字符正好适合抛出IE。尝试在另一个可能支持显示通常隐藏的字符的文本编辑器中打开文件。有时,将源复制/粘贴到超基本文本编辑器(如记事本)中,有时可以去除不可显示的字符,然后直接从记事本中将其保存回原位。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。