2021-05-12 14:32:11
chrome擴充套件開發:[8]查詢外網ip 之二
2019-12-19 01:47:03
介紹查詢外網ip擴充套件的具體程式碼實現
1
我們採用從popup視窗傳送ajax請求的方法獲取ip資料。為了能夠向ip38.com請求資料,需要修改manifest檔案,也獲得相應許可權。我們增加下面一行:
"permissions": ["<all_urls>"]
意思是說,可以存取任意url的資料。修改後的manifest檔案:
2
傳送ajax請求有很多方法,我們使用JQuery庫裡的ajax方法。
為了使用JQuery庫,我們需要從http://jquery.com/download/ 下載庫檔案,下面兩個都可以:
Download the compressed, production jQuery 2.1.0
Download the uncompressed, development jQuery 2.1.0
JQuery的文件和幫助請直接從http://jquery.com/查詢
3
將下載後的檔案放到test目錄下,你下載的檔名可能和我的不太一樣,沒有關係。
4
在popup.html增加一行,讓其參照JQuery庫:
5
新建檔案popup.js,在裡面新增存取ip資料的程式碼:function getCurIp(){$.ajax({url:"http://www.ip38.com/",type:"GET",dataType: "text",async:false,timeout: 1e4,success:function(data, t, jqXHR){//<LI>您的本機IP地址:// ? ?111.12.126.16 ? ? 來自:</strong><span id="ipad"> 稍等,查詢中.... </span></LI>//var reg=/您的本機IP地址6
在popup.html中新增對popup.js的參照:
7
popup.html檔案的最終狀態如下:
1
ajax:ajax是jquery的一個函數,用來傳送http請求。url 是請求的網址type表明是「get」還是「post」請求success是請求成功後要執行的函數error是請求遇到問題後執行的函數2
success:ajax請求成功後會執行success函數。data是請求返回的資料,我們的ajax返回的data是一些html資料,會包含一下幾行:您的本機IP地址:? ? 111.12.126.16 ? ? 來自:</strong><span id="ipad"> 稍等,查詢中....?我們需要提取出ip部分,即?111.12.126.16這就需要用到正規表示式:var reg=/您的本機IP地址:s.*?(d*.d*.d*.d*)/;var result=reg.exec(data);如果ip包含在data當中,result[1]中返回的就是我們需要的ip,然後列印出來:a1
重新載入擴充套件(如果你已經忘了重新載入擴充套件的方法,可以回過頭看下前面的文章:http://jingyan.baidu.com/article/22fe7ced1a2c613002617ff7.html)2
點選擴充套件圖示。怎麼樣,ip顯示出來了吧。
3
再到百度裡查詢下,對比下結果。一樣吧?
1
上面我們是用alert函數彈出視窗來顯示資訊,alert視窗會阻斷瀏覽器其他部分的執行。下面稍作修改,讓ip資訊顯示到我們的彈出視窗當中。2
新增下面一行:
$('body').append("外網ip為:"+curIp);
然後注釋掉alert那行:
3
重新載入,然後點選擴充套件圖示,效果如下:
相關文章