ana*_*thv 26 html text google-chrome-extension
我正在开发一个扩展,我需要在当前选项卡上获取整个文本内容.现在我有一个插件,可以从当前选项卡中检索所选文本.所以,本质上我正在寻找它的ctrl-A版本:).到目前为止,这是我从@Derek那里得到的提示.
这是在我的事件处理程序中(这只是一个,还有其他侦听器onUpdated
等):
chrome.tabs.onSelectionChanged.addListener(function(tabId,changeInfo,tab){
chrome.tabs.getSelected(null,function(tab){
chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function (response) {
selectedtext = response.data;
});
chrome.tabs.sendRequest(tab.id, {method: "getText"}, function (response) {
alltext = response.data;
});
});
});
Run Code Online (Sandbox Code Playgroud)
这是我在内容脚本中写的:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getSelection")
sendResponse({data: window.getSelection().toString()});
else if (request.method == "getText")
sendResponse({data: document.body.innerText});
else
sendResponse({});
});
Run Code Online (Sandbox Code Playgroud)
然而,document.body.innerText
返回undefined.我需要当前标签的全部内容alltext
.有人可以帮我解决这个问题吗?谢谢.
Der*_*會功夫 37
您可以在内容脚本中使用document.body.innerText
或document.all[0].innerText
执行此操作.
它将获取页面中的所有文本内容,而不包含任何HTML代码.
或者您可以使用document.all[0].outerHTML
获取整个页面的HTML.
在内容脚本中
function getText(){
return document.body.innerText
}
function getHTML(){
return document.body.outerHTML
}
console.log(getText()); //Gives you all the text on the page
console.log(getHTML()); //Gives you the whole HTML of the page
Run Code Online (Sandbox Code Playgroud)
因此,您希望内容脚本将文本返回到弹出窗口.您可以使用:
chrome.tabs.getSelected
选中标签,chrome.tabs.sendRequest
发送请求到内容脚本,chrome.extension.onRequest.addListener
听取请求.弹出页面
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getText"}, function(response) {
if(response.method=="getText"){
alltext = response.data;
}
});
});
Run Code Online (Sandbox Code Playgroud)
内容脚本
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if(request.method == "getText"){
sendResponse({data: document.all[0].innerText, method: "getText"}); //same as innerText
}
}
);
Run Code Online (Sandbox Code Playgroud)
这应该工作.
归档时间: |
|
查看次数: |
33778 次 |
最近记录: |