天天看點

chrome擴充與标簽tab的内容互動

chrome插件提供了查找tab的api:

  chrome.tabs.get(integer tabId, function callback)

但是出于安全的考慮,tab的屬性中沒有document,是以無法在擴充中直接擷取某個頁簽頁面中的頁面元素,但是tab有這樣一個方法:

  chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)

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

  chrome.extension.onRequest.addListener(function(any request, MessageSender sender, function sendResponse) {...});對擴充中的請求進行監聽,根據監聽到的資訊,決定要做的事情

簡單一點的,簡明執行個體:

一、在擴充中 添加 發送事件請求 的代碼

  chrome.tabs.sendRequest(tab_id, {      hello: "ok"    }, function(response) {        // tab做出響應,發來的response })

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

在manifest.json中添加

  "content_scripts": [    {      "matches": ["*://*/*"],      "js": ["jquery.min.js","test.js"]    }  ],  "permissions": ["*://*/*","tabs"]

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

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

  chrome.extension.onRequest.addListener(  function(request, sender, sendResponse) {    if (request.hello == "ok"){  // 在得到request請求是ok的時候 做下面的操作      sendResponse({        data: $("#hello") // 擷取id是hello的元素發過去      });    }  }  );

本文轉自問道部落格51CTO部落格,原文連結http://blog.51cto.com/450236/1852046如需轉載請自行聯系原作者

crackernet

繼續閱讀