我正在處理一些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