js中如何检测元素导航的状态?

Posted

技术标签:

【中文标题】js中如何检测元素导航的状态?【英文标题】:How to detect the status of the element navigation in js? 【发布时间】:2013-08-26 07:18:03 【问题描述】:

我需要从浏览器中获取用户的纬度和经度,但在大多数浏览器上都有一些限制,不允许这样做。如何告诉用户他的地理位置已关闭或根本不支持?

我尝试了类似的方法,但我的 mac 上的 ipad 或 safari 都没有提示任何内容。

if (navigator.geolocation)
    navigator.geolocation.getCurrentPosition(success);
else
    alert('not supported');

【问题讨论】:

【参考方案1】:

演示:http://jsfiddle.net/7sRdS/

if (navigator.geolocation)  
    navigator.geolocation.getCurrentPosition(function(position)   
        // ... 
    , function(error) 
        //error handling
        switch(error.code) 
            case error.PERMISSION_DENIED:
              //User denied the request for Geolocation.             
              break;
            case error.POSITION_UNAVAILABLE:
              //Location information is unavailable.
              break;
            case error.TIMEOUT:
              //The request to get user location timed out.
              break;
            case error.UNKNOWN_ERROR:
              //An unknown error occurred.
              break;
        
        alert("Geolocation error: " + error.code);
    ,
    
        timeout:10000 //10s
    );
 else 
    alert("Geolocation services are not supported by your browser.");
 

【讨论】:

【参考方案2】:

看看modernizr,它提供了多种特征检测测试。

【讨论】:

以上是关于js中如何检测元素导航的状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用js检测页面上一个元素是不是已经滚动到了屏幕的可视区域内

导航栏中的 SwiftUI 元素不响应状态

React.js:键盘导航

无法获取 Vue 状态的元素 (Vue.js/JS/TS)

如何仅在我的活动页面中自定义导航项元素

导航栏元素在滚动时处于活动状态