Javascript 如何捕获google maps的无效API密钥
我有以下代码:Javascript 如何捕获google maps的无效API密钥,javascript,google-maps,Javascript,Google Maps,我有以下代码: <script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=babab" type='text/javascript'></script> 如果密钥无效,则会弹出一个警报,但我想在这种情况下执行一些操作。不过我不知道该怎么做。有什么想法吗?谷歌没有提供检查谷歌地图API密钥的外部方法。因此,您不能用例如“此代码有效吗ab
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=babab" type='text/javascript'></script>
如果密钥无效,则会弹出一个警报,但我想在这种情况下执行一些操作。不过我不知道该怎么做。有什么想法吗?谷歌没有提供检查谷歌地图API密钥的外部方法。因此,您不能用例如“此代码有效吗
abcde1234
”来查询某些服务,并获得TRUE
/FALSE
响应
关于这个问题有一个讨论。但我建议你看一篇来自美国的帖子。这是一个实际执行神奇验证的函数——它到底是做什么的,比如从你的Google帐户/域创建一个哈希——我们不知道
对于检查提供的API密钥是否正确的问题,我看到了两种解决方案:
GValidateKey
函数事先验证密钥。也许您可以在引用API Javascript之前调用它?对我来说,听起来有点像黑客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);
我刚刚遇到了在使用无效API密钥时执行操作的需要。谷歌的文档: 如果您想以编程方式检测身份验证失败(例如自动发送信标),可以准备回调函数。如果定义了以下全局函数,则在身份验证失败时将调用该函数 这就是我所需要做的:
function gm_authFailure() { // Perform action(s) }
嗯,很有趣。我认为GMAP没有一个机制来检查这一点。您可以尝试包装
alert()
并解析文本(以查看是否是错误消息),但这看起来像是一个难看的破解。将alert函数分配给一个变量,在脚本包含之前用其他函数替换alert函数,并在包含完成后将其替换回来……感谢一些好信息。我并不想知道给定的API密钥是否有效,更重要的是,如果设置不正确,我需要处理错误,并且适当地不要尝试调用map对象上的一堆东西(不存在)以及调用其他google方法。使用GMaps版本3,您不再需要密钥(!)。老实说,我认为你不应该检查是否加载了GMaps Javascript,你应该检查初始GMap对象是否可用,然后从那里开始(例如),你会喜欢使用V3,但我们的大多数用户使用IE6,并且它不兼容:(这对于捕获所有类型的API密钥异常非常有效。如果您希望以不同的方式处理每种类型的错误,那么我会这样做