在IE10中替换错误,但在IE8或Firefox中没有

时间:2013-05-08 19:00:12

标签: javascript firefox internet-explorer-8 internet-explorer-10

我有一个用Cold Fusion编写的表格。当我在IE8或Firefox中测试表单时,我没有问题。当我在IE10中测试表单时,它会出现以下错误:

网页错误详情

  

用户代理:Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; WOW64; Trident / 6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)   时间戳:2013年5月8日星期三18:15:47 UTC

     

消息:对象不支持属性或方法'替换'
  行:7
  字符:10560
  代码:0
  URI:http://www.mysite.com/CFIDE/scripts/ajax/ext/adapter/yui/ext-yui-adapter.js

当我查看js文件中的字符10560周围的代码时,它会显示

 {return this.replace(a,"")}

为什么会这样? IE10有车吗? (不,这不是一个修辞问题。)

2 个答案:

答案 0 :(得分:0)

this不是字符串。

要确保它可以正常工作,您可以从

更改
this.replace(a,"")

this.toString().replace(a,"")`

或者当var仍然在你的控件上时使用.toString(),所以你不需要实际更改YUI .js(糟糕,因为如果你有一天需要更新它,你可能会忘记并遇到问题再次)。

顺便说一句,如果a不是字符串,它已经转换为字符串,所以不必担心它。

看到这个: http://jsfiddle.net/3Cd4d/(查看开发工具控制台)

答案 1 :(得分:0)

确定。这就是导致它的原因。

我有一个带有多个指定的SELECT。

在我的验证功能中,我正在修剪此字段的值。显然,IE10 / IE7不喜欢这个。

谢谢大家的帮助,以及建议我没有传递字符串的人。