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

Replace error in IE10 but not in IE8 or Firefox

本文关键字:替换 Firefox IE8 IE10 错误 但在      更新时间:2023-09-26

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

网页错误详情

User Agent: Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 6.1;WOW64;三叉戟/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)时间戳:Wed, 8 May 2013 18:15:47 UTC

消息:对象不支持"replace"属性或方法
线: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有bug吗?(不,这不是反问句)

this不是字符串。

要确保它能工作,你可以从

this.replace(a,"")

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

或者在var中使用.toString(),当它仍然在你的控制下,所以你不需要实际改变YUI .js(坏的,因为如果你需要更新它的某一天,你可能会忘记并再次出现问题)。

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

看到这个:http://jsfiddle.net/3Cd4d/(查看Dev Tools' Console)

好的。这就是导致它的原因。

我有一个指定多个的SELECT。

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

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