2012-02-08 61 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

相关问题