为了工作,我需要让我们的网站在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的开发人员工具中并运行它,它可以正常工作。
答案 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...');