2012-02-08 50 views
0

我建立一個Chrome擴展,我需要閱讀background.html 當前選擇的HTML代碼,我可以從background.html文本選擇:獲取當前選項卡中選擇HTML

function(info,tab) { 
    var text = info.selectionText; 
} 

但我需要HTML代碼。從內background.html我想:

var selection = window.getSelection(); 
var range = selection.getRangeAt(0); 
var container = range.commonAncestorContainer; 
var html = container.innerHTML 

但我相信我無法從內部訪問後臺窗口對象...

我看過SpikeX後:Get page selection including HTML?但不是找不到他提到的源代碼...

謝謝!

中號

回答

0

您可以使用chrome.tabs.executeScript訪問html內容。見http://code.google.com/chrome/extensions/tabs.html

+0

謝謝anfilat,我這樣做,它的工作(注入JS從背景頁面)基本上我不得不添加一個偵聽器,然後注入腳本:\t \t \t \t \t \t chrome.extension.onRequest.addListener(onSelection); chrome.tabs.executeScript(null,{file:「content.js」,allFrames:true}); – Neurus 2012-02-11 02:25:04

0

我已寫入一次通過從Mozila /火狐「視圖選擇源」功能的啓發用戶的JavaScript歌劇院。 You can read about it and grab the code here

編輯: 現在,當我讀到這個問題,你掛我意識到,其實我也寫在回答中提到的第一個Chrome擴展。它也是基於該腳本。然而,它停止了一些Chrome更新,我從來沒有看到這個問題。不過,它應該很容易修復。

+0

謝謝jkbr - 我讀了代碼,我想我的問題是在這方面:var sel = findSelection(window); ...我嘗試的任何東西,包括上述內容,都不會在background.html上返回任何內容。我相信這是我的問題,我無法從background.html頁面獲取window.getSelection() - 一旦我知道如何獲取HTML使用範圍.. – Neurus 2012-02-08 03:59:58

相關問題