您好,登錄后才能下訂單哦!
chrome插件提供了查找tab的api:
chrome.tabs.get(integer tabId, function callback)
但是出于安全的考慮,tab的屬性中沒有document,因此無法在擴(kuò)展中直接獲取某個(gè)頁簽頁面中的頁面元素,但是tab有這樣一個(gè)方法:
chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)
他可以在擴(kuò)展中對某一個(gè)tab進(jìn)行請求,發(fā)送請求信息;在對應(yīng)的tab頁面中通過
chrome.extension.onRequest.addListener(function(any request, MessageSender sender, function sendResponse) {...});對擴(kuò)展中的請求進(jìn)行監(jiān)聽,根據(jù)監(jiān)聽到的信息,決定要做的事情
簡單一點(diǎn)的,簡明實(shí)例:
一、在擴(kuò)展中 添加 發(fā)送事件請求 的代碼
chrome.tabs.sendRequest(tab_id, { hello: "ok" }, function(response) { // tab做出響應(yīng),發(fā)來的response })
二、在 tab中添加 事件監(jiān)聽的代碼
在manifest.json中添加
"content_scripts": [ { "matches": ["*://*/*"], "js": ["jquery.min.js","test.js"] } ], "permissions": ["*://*/*","tabs"]
其目的是在每個(gè)標(biāo)簽頁面加載的時(shí)候同時(shí)載入這兩個(gè)js,獲取tabs的權(quán)限
在test.js 中放入監(jiān)聽 擴(kuò)展 請求事件的代碼
chrome.extension.onRequest.addListener( function(request, sender, sendResponse) { if (request.hello == "ok"){ // 在得到request請求是ok的時(shí)候 做下面的操作 sendResponse({ data: $("#hello") // 獲取id是hello的元素發(fā)過去 }); } } );
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。