我设置了一个全局ajax成功函数来检测wordpress页面上的ajax提交。根据结果,我想将响应文本传达给页面上的用户。通常我会自己创建一个ajax帖子,然后用我自己的函数简单地写任何对屏幕的响应 - 即:
success : function(data) {
theResult = data;
if (data.indexOf("the response I'm looking for") > -1 ) {
$(".targetdiv").append(data');
}
}
但是,这个ajax请求是由wordpress插件执行的,我不想修改它,因此在插件更新时会丢失任何修改。所以我发现了这个通用的ajax成功函数:
$(document).ajaxSuccess(function(event, request, options) {
var data = request.responseText;
if (data.indexOf("the response I'm looking for") > -1 ) {
$(".targetdiv").append(data');
}
});
这在Firefox和Chrome以及MS Edge浏览器中完美运行,但在任何早期版本的IE中都没有,包括9,10和10。 11或更早版本的Safari(8及更早版本)。
在这些浏览器中,由于没有获得request.responseText
而失败。
我尝试了一些测试:$parseJSON(request.responseText)
无济于事。
我只是想知道早期版本的Explorer和Safari会有什么不同,这会导致这些浏览器无效。
答案 0 :(得分:0)
全局ajax成功函数在IE和Safari中无效,因为还有另一个不相关的脚本导致那些阻止所有JQuery函数工作的浏览器出现问题。
我依赖的是FF控制台,它没有向我提供有关IE和Safari中发现的错误的详细信息。我最初应该注意到的一件显而易见的事情,但我想这里的教训是不要依赖一个浏览器控制台来解决其他环境中发生的错误。