Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取当前选项卡选择HTML_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 获取当前选项卡选择HTML

Javascript 获取当前选项卡选择HTML,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在构建一个chrome扩展,我需要在background.HTML中读取当前选择的HTML代码 我可以从background.html获取文本选择: function(info,tab) { var text = info.selectionText; } 但是我需要HTML代码。从background.html内部,我尝试了: var selection = window.getSelection(); var range = selection.getRangeAt(0); v

我正在构建一个chrome扩展,我需要在background.HTML中读取当前选择的HTML代码 我可以从background.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 post:但找不到他所指的源代码

谢谢


M

我曾经为Opera编写过一个用户JavaScript,其灵感来自Mozila/Firefox的“视图选择源”功能

编辑:
现在当我读到你链接的问题时,我意识到我实际上也写了答案中提到的第一个Chrome扩展。它也是基于这个脚本。然而,它停止了一些Chrome更新的工作,我从来没有研究过这个问题。不过,它应该很容易修复。

您可以使用chrome.tabs.executeScript访问html内容。请参见

谢谢jkbr-我阅读了代码,我想我的问题在这方面:var sel=findSelection(window)。。。我尝试包含上述内容的任何内容都不会在background.html上返回任何内容。我相信这是我的问题,我无法从background.html页面获取window.getSelection()-一旦我知道如何使用范围获取html..感谢anfilat,我做到了,并且成功了(从后台页面注入JS),基本上我必须添加一个侦听器,然后注入脚本:chrome.extension.onRequest.addListener(onSelection);chrome.tabs.executeScript(null,{file:“content.js”,allFrames:true});