我有这段代码:
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=babab" type='text/javascript'></script>
如果密钥无效,则会弹出警报,但我想在这种情况下执行某些操作。我不知道如何勾选它。有什么想法吗?
答案 0 :(得分:4)
Google不提供检查Google Maps API密钥的外部方法。因此,您无法使用例如查询某些服务。 “此代码是否有效abcde1234
”并获得TRUE
/ FALSE
响应。
关于how the Maps API key is generated的讨论。但我建议您查看Mike Williams about the GValidateKey
function的帖子。这是实际进行魔术验证的功能 - 它的确切功能,例如从您的Google帐户/域创建哈希 - 我们不知道。
对于检查提供的API密钥是否正确的问题,我看到了两个解决方案:
GValidateKey
函数以事先验证您的密钥。也许你可以在引用API Javascript之前调用它?对我来说听起来很残忍...... 您可能遇到的问题是您不知道Google实际检查的内容。引荐来源,引荐网站,主机 - 许多可能性(不服务器的IP地址,但名称加上一些其他信息)。
答案 1 :(得分:3)
如果使用了无效的API密钥,我只是遇到了执行操作的需要。 Google的文档states:
如果要以编程方式检测身份验证失败(例如自动发送信标),则可以准备回调函数。如果定义了以下全局函数,则在验证失败时将调用它。
这就是我需要做的全部:
function gm_authFailure() { // Perform action(s) }
答案 2 :(得分:2)
对于现代浏览器(IE9 +和其他浏览器),您可以使用DOMNodeRemoved event。您只需要将事件处理程序添加到传递给地图构造函数的元素中:
var map = new google.maps.Map(element, myOptions);
element.addEventListener("DOMNodeRemoved", function(e){
if (e.target === element){
//your code here
element.removeEventListener("DOMNodeRemoved", mapWasRemovedHandler, true);
}
}, false);