0

我在 IE 中遇到了一个问题,在 twitter 中成功发布链接后,没有调用 AJAX 成功事件。我有这个代码:

jQuery(document).ready(function () {
    jQuery('#tbookmarklet').twitterbutton({
    url: myshareUrl,
    title: myTitle,
    layout: 'none',
    ontweet:function(response){
        jQuery.ajax({
        url: tCallbackUrl,
        type: 'get', 
        error: function() {
            alert('sorry, it fails');
        },
        success: function() {
            alert('tweet success');
        }
        });
    },  
});
 jQuery.ajax({ url: 'https://platform.twitter.com/widgets.js', dataType: 'script', cache:true});
});

没有办法提醒成功消息,它也没有落入错误事件中,所以我无法真正找出问题所在。这仅发生在 IE 中,不会发生在其他浏览器(如 firefox 或 chrome)上,但链接已在 twitter 中成功发布。

我已经在网上阅读了使用该complete事件的内容,但是即使 ajax 处理失败,它仍然会执行您在完整事件中指定的功能,因此使用完整不是一个好主意。

我的代码有什么问题?我需要做什么才能轻松确定它的可能原因。

谢谢。

我必须更新我的问题:

正如 Furqan 建议的那样,使用 crossDomain: true。我已将我的代码更新为:

  jQuery.ajax({ 
    url: 'https://platform.twitter.com/widgets.js', 
    dataType: 'jsonp', 
    crossDomain:true,   
    CallbackName: 'SocialMedia'
    });

而不是这个:

jQuery.ajax({ 
       url: 'https://platform.twitter.com/widgets.js', 
       dataType: 'script', 
       cache:true
});

但它仍然不能解决我的问题。经过进一步调查,我发现 ontweet 事件并没有真正在 IE 中触发。可能是什么原因?有人遇到过这个问题吗?

在我的 IE 网络分析器中,我得到了这个结果:

http://pastebin.com/fxxCyTSE

但是,它发布到了推特上。我的问题是当它重定向回我的网站(从 twitter 到我的网站)时,success事件没有被调用,因为ontweet事件也没有被触发。

对此有任何想法吗?

关于这个问题的更新:

经过进一步研究,我发现 Twitter 代码确实存在错误。IE 中不会触发推文事件。

我发现与该问题相关的链接:

https://dev.twitter.com/discussions/671

https://dev.twitter.com/discussions/3884

https://dev.twitter.com/discussions/1640

4

1 回答 1

0

您在 IE 上的问题是推文末尾的额外逗号:

    },   
}); 

应该

    } 
}); 

IE 不喜欢多余的逗号

于 2012-07-02T12:20:21.917 回答