我成功使用了API,但今天早上遇到了错误" OOPS!出了点问题"坐在文本框中,用户无法输入。我发现这个问题是关键和固定的,然而,这表明可能会出现一些问题,并且由于这种阻塞,用户无法完成。我希望能够在javascript中检测到google.maps.places.Autocomplete对象是否存在问题,而不是将其绑定到文本框。
答案 0 :(得分:0)
对于其他想要这样做的人。
感谢有关人士的想法: Capturing javascript console.log?
// error filter to capture the google error
(function () {
var oldError = console.error;
console.error = function (message) {
if (message.toLowerCase().includes("google maps api error")) {
document.getElementById('<%=hdnGoogleSelected.ClientID %>').value = "DISABLE";
triggerUpdatePanel();
//alert(message);
}
oldError.apply(console, arguments);
};
})();
我在更新面板中,所以我触发了更新,将onfocus设置回this.select();对于有效禁用自动完成尝试的文本框。
tbAddress1.Attributes [“onfocus”] =“javascript:this.select();”;
答案 1 :(得分:0)
另一个选项: 加载约5秒钟后,Google将返回错误。 “ gm-err-autocomplete”类表示自动完成组件有任何错误。
您可以定期检查google返回的错误类别。加载后我做了10秒钟:
function checkForGoogleApiErrors() {
var secCounter = 0;
var googleErrorCheckinterval = setInterval(function () {
if (document.getElementById("AddressAutocomplete").classList.contains("gm-err-autocomplete")) {
console.log("error detected");
clearInterval(googleErrorCheckinterval);
}
secCounter++;
if (secCounter === 10){
clearInterval(googleErrorCheckinterval);
}
}, 1000);
}