黃聰:360、chrome開發插件擴展如何跨域調用其他網站的信息並且顯示在擴展、tab中的api


chrome插件提供了查找tab的api 

Js代碼
  1. chrome.tabs.get(integer tabId, function callback)  


但是出於安全的考慮,tab的屬性中沒有document 

因此無法在擴展中直接獲取某個頁簽頁面中的頁面元素 

但是tab有這樣一個方法 

Js代碼
  1. chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)  


他可以在擴展中可以對某一個tab進行請求,發送請求信息; 
在對應的tab頁面中通過 

Js代碼  
  1. chrome.extension.onRequest.addListener(function(any request, MessageSender sender, function sendResponse) {...});  


對擴展中的請求進行監聽,根據監聽到的信息,決定要做的事情 

簡單一點的,簡明實例: 
一、在擴展中 添加 發送事件請求 的代碼 

Js代碼  
  1. chrome.tabs.sendRequest(tab_id, {  
  2.       hello: "ok"  
  3.     }, function(response) {  
  4.         // tab做出響應,發來的response  
  5. })  



二、在 tab中添加 事件監聽的代碼 

在manifest.json中添加 

Js代碼  
  1. "content_scripts": [  
  2.   {  
  3.     "matches": ["*://*/*"],  
  4.     "js": ["jquery.min.js","test.js"]  
  5.   }  
  6. ],  
  7. "permissions": ["*://*/*","tabs"]  


其目的是在每個頁簽頁面加載的時候同時載入這兩個js,獲取tabs的權限 

在test.js 中放入監聽 擴展 請求事件的代碼 

Js代碼
  1. chrome.extension.onRequest.addListener(  
  2.   function(request, sender, sendResponse) {  
  3.     if (request.hello == "ok"){  // 在得到request請求是ok的時候 做下面的操作  
  4.       sendResponse({  
  5.         data: $("#hello"// 獲取id是hello的元素發過去  
  6.       });  
  7.     }  
  8.   }  
  9.   );  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM