2013-10-28 69 views
1

我用document.body.outerHTML從標籤中取得的HTML,但我不能這樣做如何從當前選項卡獲得HTML彈出

manifest.json的:

{ 
    "name": "SEO Analytic", 
    "description": "Adds a print button to the browser.", 
    "version": "1.2", 
    "manifest_version": 2, 

    "background": { 
     "scripts": ["background.js"], 
     "persistent": false 
    }, 
    "content_scripts": [ 
     { 
      "matches": ["<all_urls>"], 
      "js":  ["content.js"] 
     } 
    ], 

    "permissions": ["tabs", "http://*/*", "https://*/*"], 

    "browser_action": { 
     "default_title": "SEO Analytic", 
     "default_popup": "popup.html" 
    } 
} 

popup.js :

chrome.tabs.getSelected(null, function(tab) { 
    chrome.tabs.sendRequest(tab.id, {method: "getText"}, function(response) { 
     if (response.method == "getText") { 
      alltext = response.data; 
      alert(alltext); 
     } 
    }); 
}); 

content.js:

chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) { 
    if (request.method == "getText") { 
     sendResponse({ 
      data: document.body.outerHTML, 
      method: "getText" // same as innerText 
     }); 
    } 
}); 
+0

你試過我提出的解決方案嗎?如果你爲你工作? – gkalpak

回答

1

似乎問題似乎是您正在使用一些不推薦使用的功能。 Specificaly,使用你的代碼,我得到以下錯誤在控制檯日誌:

Error in response to tabs.getSelected: Error: sendRequest and onRequest are obsolete. Please use sendMessage and onMessage instead.

雖然有些過時的東西都可能仍然支持,他們肯定不會持續太久,所以這是一個好主意遷移到最新的API和方法。即:

有關如何從一個選項卡以彈出(或背景頁)某些HTML內容詳細的回答,請參閱my answer到一個相關的問題。


順便說一句,如果你不使用background.js,你可以完全刪除從清單中的「背景」鍵。

相關問題