【问题标题】:javascript error in IE8 compatibitlity modeIE8兼容模式下的javascript错误
【发布时间】:2010-10-29 22:23:08
【问题描述】:

我有以下 jQuery 代码在 IE8、FF 中运行良好,但在 IE8 压缩模式下会出现此错误

网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 2.0.50727;.NET CLR 3.0.04506.648;.NET CLR 3.5.21022;.NET CLR 3.0.4506.2152 ; .NET CLR 3.5.30729;创意自动更新 v1.30.00) 时间戳:2010 年 10 月 29 日星期五 22:12:03 UTC

消息:对象不支持此属性或方法 线路:162 字符:44 代码:0

这是第 162 行

$(this).attr('onChange', function(iii,vvv){return vvv.replace('_','');});

这是完整的脚本

<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("select[name^=SELECT___]").each(function(){
$(this).attr('onChange', function(iii,vvv){return vvv.replace('_','');});
});
$("a[href^='javascript:change_option']").each(function(){
$(this).attr('href', function(ii,vv){return vv.replace('_','');});
});
});
</script>

是什么导致了这个错误?有没有其他方法可以做我想做的事?

我需要做的是将页面上以下代码的每个实例中的“change_option”更改为“changeoption”,也许有更好的方法。

这是 HTML 代码。我无权访问此 html 代码

编辑:

<select onChange="change_option('SELECT___100E___7',this.options[this.selectedIndex].value)" name="SELECT___100E___7">

这是文档声明。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

【问题讨论】:

    标签: jquery ie8-compatibility-mode


    【解决方案1】:

    我需要做的是改变 “change_option”到“changeoption”中 以下代码的每个实例 页面,也许有更好的 这样做的方法。

    也许吧。为什么你不能只创建一个 changeoption 的别名(假设你已经定义了函数)?

    var change_option = changeoption;
    

    【讨论】:

    • 我没有关注你。我看不出这将如何调用 changeoption 函数而不是 change_option 函数。你能再解释一下吗?
    • 函数就像 javascript 中的任何其他变量一样。和var b=10; var a=b; alert(a)是一样的,当然会提醒a的值,但是和b的值是一样的。或者我完全误解了你的问题。
    • 澄清一下,现在当名称以 SELECT___ 开头的每个选择框中发生更改时调用的函数是这个 change_option(xxxxxx,xxxxxx) 我希望调用的函数是这个 changeoption ( xxxxxx,xxxxxx)。现在我尝试使用您在上面看到的替换功能来执行此操作,但这仅在 FF 和 IE8 中有效,但在 IE8 比较模式下给出了 javascipt 错误。我希望这更有意义。
    猜你喜欢
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 2014-07-02
    • 2023-03-23
    相关资源
    最近更新 更多