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