IE Object不支持此属性或方法

时间:2011-06-10 02:09:26

标签: javascript jquery internet-explorer object

这可能是许多问题的开始。 我已经完成了我的网站建设,我正在使用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

3 个答案:

答案 0 :(得分:3)

在IE8中,您的代码导致jQuery在此行失败

$("title").text(title);
在menu.updateTitle()函数中

。做一些研究(即用Google搜索),似乎你可能不得不在IE上使用document.title

答案 1 :(得分:2)

您的问题(可能)在这里:

menu.updateTitle = function(hash){
  var title = menu.titleBase + ": " + $(hash).data("title");
  $("title").text(title);  // IE fails on setting title property
};

我无法理解为什么jQuery的text()方法在这里失败,但确实如此。无论如何,不​​使用它会简单得多。 title对象的document属性是文档标题元素的内容。它没有标记为只读,因此要设置其值,您只需指定一个新值:

document.title = title;

和IE很满意。

最好尽可能直接访问DOM属性,而不是使用jQuery的等效方法。物业访问不那么麻烦,而且(非常)更快,通常代码更少。

答案 2 :(得分:0)

嗯,你的1号线肯定看起来很直接。假设错误行和数字没有错误,它让我觉得你的js文件的第一个点中有一个隐藏的字符,它正在抛出IE。尝试在另一个可能支持显示正常隐藏字符的文本编辑器中打开该文件。有时将源复制/粘贴到超级基本文本编辑器(如记事本)中,有时会删除不可显示的字符,然后直接从记事本中将其保存回原位。