ie8中的jquery出错

时间:2012-06-26 11:44:42

标签: javascript jquery internet-explorer

我收到此错误:

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 5.1;   三叉戟/ 4.0; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152;   .NET CLR 3.5.30729)时间戳:2012年6月26日星期二11:31:22 UTC

     

消息:对象不支持此属性或方法行:56字符:   650代码:0

URI: http://api.apps.com/html/81
  

消息:对象不支持此属性或方法行:56字符:   738代码:0

URI: http://api.apps.com/html/81

我不能依赖那个调试器,因为当我查看源代码时,我看到第56行是一条长行,我不知道错误到底在哪里?有没有办法追踪错误?错误是什么不支持。这是第56行:

function send_email(to) {
    if (to.length == 0) {
        $("#email_loader").html("<p>Please enter an `email address</p>");
        $("#email_response").fadeIn(250);
    }
    else {
        _gaq.push(['_trackEvent', 'Email', FA.appID]);
        $("#email_loader").html("<img src='http://apps.com/img/ajax_load.gif' />");
        $("#email_response").fadeIn(500);
        $.get("/inc_appdl_main_api.php", {
            to: to,
            app_id: FA.appID
        }, function (data) {
            if (data.length > 0) {
                $("#email_loader").html(data);
                $("#email_response").delay(1000).fadeOut(500);
            }
        });
        setTimeout(FA.iframeClose, 2000);
    }
};
function iframeClose() {
    parent.postMessage("closeFA", "*");
};
$("#to").keypress(function (event) {
    if ((event.which == '13') && ($(this).val().length > 0)) {
        to = $(this).val();
        event.preventDefault();
        send_email(to);
    }
});
$("#email").click(function () {
    to = $("#to").val();
    send_email(to);
});
function set_url_target(url) {

}

有没有办法在ie8中调试?

我看了记事本++。它指向那里: char 791     到= $( “#至”)ATTR( '值'); SEND_EMAIL(到);

它有什么不对吗

2 个答案:

答案 0 :(得分:1)

确保加载页面时控制台/开发人员工具已打开,否则当您尝试使用console.log时它将失败。

假设这不是问题,请尝试在各种函数调用周围添加console.log()语句,如下所示:

$("#email").click(function () {
    console.log('call 1...');
    to = $("#to").val();
    console.log('call 1 done.');
    send_email(to);
});

对它疯狂,希望你会在控制台中看到像

这样的东西
LOG: call 7...

没有匹配LOG: call 7 done.。然后你知道谁是罪魁祸首。

错误提到了几个字符数字,而那些字符会接近.val()个调用中的两个。所以首先关注那些。只需用常量替换它们。

答案 1 :(得分:0)

这对我有用:

由于"to"变量,IE引发了错误。我改变了这个:

$("#email").click(function () {
    to = $("#to").val();
    send_email(to);
});

对此:

$("#email").click(function () {
   var to = $("#to").val();
    send_email(to);
});

IE停止抛出错误!!