嗨,我在IE中遇到了这个错误。它可以在所有其他浏览器中工作。
这是显示错误的行:
if (parseFloat(totalnumm.replace(/[^0-9-.]/g,'')) > compare_value_neww && values[x].indexOf("Custom") > -1 ).
我用谷歌搜索了一下,找到了一个解决方案:
<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />
但它对我不起作用。
发布于 2013-05-28 16:58:12
我本想问你是在哪个版本的IE中测试的,但既然你在元标签中指定了content="IE=8
,那就无关紧要了。
简而言之,IE8或更早版本不支持数组的.indexOf
。(这包括兼容模式下的最新IE版本,因此您的meta标签将意味着它在任何IE版本中都不起作用)
解决方案:
.inArray()
方法。然后,您需要将代码从使用var.indexOf(x)
更改为使用$.inArray(var,x)
如果您已经在使用jQuery (或具有此feature).
.indexOf
方法添加到数组原型。这应该允许您保持现有代码不变;只需包含库即可。
如果你很乐意使用一个库,但是你还没有安装一个可以使用 for()
循环来执行相同工作的函数,那么可以使用这个解决方案。
这完全改变了您在数组中查找内容的方式,但这并不意味着您不需要使用任何额外的库。
如果你不想(或者因为某种原因不能)使用第三方library.
如果您乐于停止支持较旧的IE版本,请使用此解决方案。
事实上,不管怎样,这样做都是一个好主意;没有充分的理由使用meta标签来强制IE进入兼容模式。最好将其设置为content="IE=edge"
。对于较新的IE版本,这将完全消除该问题。如果你确实需要支持IE8或更早的版本,那么这个解决方案不会解决问题,你还需要使用上面的其他解决方案之一,但我仍然建议你这样做,因为目前的情况是,你在没有充分理由的情况下故意从较新的IE版本中删除功能。
https://stackoverflow.com/questions/16787799
复制相似问题