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的元素發過去
- });
- }
- }
- );