1

Google chrome 浏览器 (19.0.1084.56 m) 中有一个奇怪的错误(或功能?)。我正在尝试在我的页面上运行下一个 JavaScript 代码:

//...
function successCallback(position) {
    console.log('success');
}

function errorCallback(error) {
    console.log('error');
}

navigator.geolocation.getCurrentPosition(
    successCallback,
    errorCallback,
    {timeout: 1000});
//...

浏览器问我:“站点名称想要跟踪您的物理位置 [允许] [拒绝] ...了解更多 [X]”。

当我单击允许/拒绝按钮时,回调函数工作正常。但是当我点击 [X] 按钮时没有任何反应:( 有没有办法检测点击 [X]?

PS 貌似 Firefox 有相同的功能Firefox 11 和 GeoLocation 拒绝回调

4

1 回答 1

0

我相信Chrome 没有忽略选项的回调。

如果我是你,我会尝试实现超时回调。

示例代码:

    _callback = false;
function successCallback(position) {
    _callback = true;
    console.log('success');
}

function errorCallback(error) {
     _callback = true; 
    console.log('error');
}

setTimeout(function(){if(!_callback)console.log('ignored')}, 10000); //chanche the timeout according your needs

navigator.geolocation.getCurrentPosition(
    successCallback,
    errorCallback,
    {timeout: 1000});
于 2012-06-14T18:28:22.063 回答