在IE 7中意外调用方法或属性访问

时间:2011-04-12 15:39:25

标签: javascript jquery internet-explorer

为了工作,我需要让我们的网站在IE7中运行。因为,众所周知,企业界无法升级。

我使用IE8的IE7仿真模式来测试网站,使用IE8的精彩调试器一直是个噩梦。

我最近的问题是以下错误:

Unexpected call to method or property access.  jquery.js, line 113 character 460

我在我的函数的每一行都放了console.log个命令,并找出导致错误的行。

var $loading = $('<span/>').addClass('span-icon icon-ajax-loader').html('Loading...');

此行适用于Firefox和Chrome。哦,将它输入IE8的JavaScript控制台时效果很好。

为什么这一行会给Unexpected call to method or property access?我认为对方法或财产的调用是完全可以预料的。

更新:根据@Pointy的建议,我把这条线分成3行。

var $loading = $('<span/>');
$loading.addClass('span-icon icon-ajax-loader');
$loading.html('Loading...');

现在我收到了此次通话$loading.html('Loading...');的错误。再次,如果我将此代码粘贴到IE8的开发人员工具中并运行它,它可以正常工作。

2 个答案:

答案 0 :(得分:2)

你在哪里注射内容?你看过这个问题和答案吗? Javascript IE error: unexpected call to method or property access

答案 1 :(得分:2)

感谢@daniellmb和@yoavmatchulsky帮助我解决了这个问题。

实际上有3个独立的解决方案。

使用.text()代替.html()

var $loading = $('<span/>').addClass('span-icon icon-ajax-loader').text('Loading...');

.html()换成span标记。

var $loading = $('<span/>').addClass('span-icon icon-ajax-loader').html('<span>Loading...</span>');

或将$('<span/>')替换为$('<span></span>')

var $loading = $('<span></span>').addClass('span-icon icon-ajax-loader').html('Loading...');