欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用JavaScript獲取用戶IP屬地方法詳解

 更新時(shí)間:2022年05月24日 11:22:47   作者:靈扁扁  
最近很多平臺(tái)都上線了顯示用戶的位置信息的功能,那么這是如何做到的, 據(jù)說這個(gè)位置信息的準(zhǔn)確性在通信網(wǎng)絡(luò)運(yùn)營商那里?本文將來探究一下

寫在前面

想要像一些平臺(tái)那樣顯示用戶的位置信息,例如某省市那樣。那么這是如何做到的, 據(jù)說這個(gè)位置信息的準(zhǔn)確性在通信網(wǎng)絡(luò)運(yùn)營商那里?先不管,先實(shí)踐嘗試下能不能獲取。

嘗試一:navigator.geolocation

嘗試了使用 navigator.geolocation,但未能成功拿到信息。

getGeolocation(){
  if ('geolocation' in navigator) {
    /* 地理位置服務(wù)可用 */
    console.log('地理位置服務(wù)可用')
    navigator.geolocation.getCurrentPosition(function (position) {
      console.dir('回調(diào)成功')
      console.dir(position) // 沒有輸出
      console.dir(position.coords.latitude, position.coords.longitude)
    }, function (error) {
      console.error(error)
    })
  } else {
    /* 地理位置服務(wù)不可用 */
    console.error('地理位置服務(wù)可用')
  }
}

嘗試二:sohu 的接口

嘗試使用http://pv.sohu.com/cityjson?ie=utf-8獲取用戶位置信息, 成功獲取到信息,信息樣本如下:

{"cip": "14.11.11.11", "cid": "440000", "cname": "廣東省"}
// 需要做跨域處理
getIpAndAddressSohu(){
  // config 是配置對(duì)象,可按需設(shè)置,例如 responseType,headers 中設(shè)置 token 等
  const config = {
    headers: {
      Accept: 'application/json',
      'Content-Type': 'application/json;charset=UTF-8',
    },
  }
  axios.get('/apiSohu/cityjson?ie=utf-8', config).then(res => {
    console.log(res.data) // var returnCitySN = {"cip": "14.23.44.50", "cid": "440000", "cname": "廣東省"};
    const info = res.data.substring(19, res.data.length - 1)
    console.log(info) // {"cip": "14.23.44.50", "cid": "440000", "cname": "廣東省"}
    this.ip = JSON.parse(info).cip
    this.address = JSON.parse(info).cname
  })
}

調(diào)試的時(shí)候,做了跨域處理。

proxy: {
  '/apiSohu': {
    target: 'http://pv.sohu.com/', // localhost=>target
    changeOrigin: true,
    pathRewrite: {
    '/apiSohu': '/'
    }
  },
}

下面是一張獲取到位置信息的效果圖:

嘗試三:百度地圖的接口

需要先引入百度地圖依賴,有一個(gè)參數(shù) ak 需要注意,這需要像管理方申請(qǐng)。例如下方這樣

<script src="https://api.map.baidu.com/api?v=2.0&ak=3ufnnh6aD5CST"></script>
getLocation() { /*獲取當(dāng)前位置(瀏覽器定位)*/
  const $this = this;
  var geolocation = new BMap.Geolocation();//返回用戶當(dāng)前的位置
  geolocation.getCurrentPosition(function (r) {
    if (this.getStatus() == BMAP_STATUS_SUCCESS) {
      $this.city = r.address.city;
      console.log(r.address) // {city: '廣州市', city_code: 0, district: '', province: '廣東省', street: '', …}
    }
  });
}
function getLocationBaiduIp(){/*獲取用戶當(dāng)前位置(ip定位)*/
  function myFun(result){
    const cityName = result.name;
    console.log(result) // {center: O, level: 12, name: '廣州市', code: 257}
  }
  var myCity = new BMap.LocalCity();
  myCity.get(myFun);
}

成功用戶的省市位置,以及經(jīng)緯度坐標(biāo),但會(huì)先彈窗征求用戶意見。

寫在后面

嘗試結(jié)果不太理想,sohu 的接口內(nèi)部是咋實(shí)現(xiàn)的,這似乎沒有彈起像下面那樣的征詢用戶意見的提示。

而在 navigator.geolocation 和 BMap.Geolocation() 中是彈起了的。

用別人的接口總歸是沒多大意思,也不知道不用征求用戶意見是咋實(shí)現(xiàn)的。

經(jīng)實(shí)測 sohu 的接口和 new BMap.Geolocation() 都可以拿到用戶的位置信息(省市、經(jīng)緯度等)。

到此這篇關(guān)于利用JavaScript獲取用戶IP屬地方法詳解的文章就介紹到這了,更多相關(guān)JavaScript獲取用戶IP屬地內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • D3.js中強(qiáng)制異步文件讀取同步的幾種方法

    D3.js中強(qiáng)制異步文件讀取同步的幾種方法

    這篇文章主要給大家介紹了d3.js中強(qiáng)制異步文件讀取同步的幾種方法,文中給出了詳細(xì)的介紹和解決方法,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-02-02
  • xml轉(zhuǎn)json的js代碼

    xml轉(zhuǎn)json的js代碼

    xml轉(zhuǎn)json的js代碼,需要的朋友可以參考下
    2012-08-08
  • JavaScript實(shí)現(xiàn)三種常用網(wǎng)頁特效(offset、client、scroll系列)

    JavaScript實(shí)現(xiàn)三種常用網(wǎng)頁特效(offset、client、scroll系列)

    這篇文章主要為大家介紹了三種常用的PC端網(wǎng)頁特效:元素偏移量offset系列,元素可視區(qū)client系列和元素滾動(dòng)scroll系列,文中示例代碼介紹詳細(xì),需要的可以參考一下
    2021-12-12
  • 用js讀、寫、刪除Cookie代碼續(xù)篇

    用js讀、寫、刪除Cookie代碼續(xù)篇

    本文是上一篇文章《用js讀、寫、刪除Cookie代碼分享及詳細(xì)注釋說明》發(fā)現(xiàn)了些問題,進(jìn)行分析解決,推薦給大家
    2014-12-12
  • js+canvas實(shí)現(xiàn)代碼雨效果

    js+canvas實(shí)現(xiàn)代碼雨效果

    這篇文章主要為大家詳細(xì)介紹了js+canvas代碼雨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • JS制作可以選項(xiàng)卡切換的年歷

    JS制作可以選項(xiàng)卡切換的年歷

    這篇文章主要為大家分享了JS制作類似于選項(xiàng)卡切換的年歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JavaScript事件用法淺析

    JavaScript事件用法淺析

    這篇文章主要介紹了JavaScript事件用法,較為詳細(xì)的分析了javascript事件流、事件類型及事件操作技巧,需要的朋友可以參考下
    2016-10-10
  • JavaScript獲取URL參數(shù)的四種方法總結(jié)

    JavaScript獲取URL參數(shù)的四種方法總結(jié)

    在前端開發(fā)過程中難免會(huì)遇到處理url參數(shù)的問題,這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript獲取URL參數(shù)的四種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • javascript相關(guān)事件的幾個(gè)概念

    javascript相關(guān)事件的幾個(gè)概念

    對(duì)于事件來講,首先,我們需要了解這樣幾個(gè)概念:事件;事件處理程序;事件類型;事件流;事件冒泡;事件捕獲;事件對(duì)象;事件方面的性能優(yōu)化(事件委托、移除事件處理程序);常見的瀏覽器兼容問題。
    2015-05-05
  • JavaScript實(shí)現(xiàn)設(shè)置默認(rèn)日期范圍為最近40天的方法分析

    JavaScript實(shí)現(xiàn)設(shè)置默認(rèn)日期范圍為最近40天的方法分析

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)設(shè)置默認(rèn)日期范圍為最近40天的方法,結(jié)合實(shí)例形式分析了javascript結(jié)合HTML5 date元素進(jìn)行時(shí)間運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07

最新評(píng)論