我正在处理一些JavaScript/jQuery代码,这些代码根据通过JSON请求检索的指定用户代理列表检测到用户代理。
只要发现匹配,我希望函数返回false并跳出循环,只有在没有找到JSON文档中的用户代理时才继续返回true。
我有这样的代码......
function checkUserAgent() {
$.getJSON('noapplet-useragents.json', function(data) {
$.each(data, function(key, val) {
if(navigator.userAgent.search(new RegExp(val)) != -1) {
console.log("False!");
return false;
}
});
console.log("True!");
return true;
});
}
// ... call to checkUserAgent() function
然而,当返回false;也返回true。 如何根据需要使第一次返回停止功能。
console.log()
声明只是它们的暂时的Firebug。
编辑:感谢所有的反馈意见。由于某些原因,我无法添加评论。
无法从Ajax调用返回值。阅读:[jQuery:ajax调用成功后返回数据](http://stackoverflow.com/questions/5316697/jquery-return-data-after-ajax-call-success)另请阅读[关于'$ .each'的文档](http://api.jquery.com/jQuery.each/)返回false将停止迭代,但不能从回调中返回值。 – 2011-05-03 19:24:31
似乎''.each'的'}'缺失。 – morgar 2011-05-03 19:26:04
@morgar:不,这只是不好的缩进。 – 2011-05-03 19:27:42