我正在开发一个 chrome 扩展。我正在尝试从活动选项卡中获取选定/突出显示的文本并对其进行处理。现在,假设扩展程序所做的只是在弹出窗口中写入所选文本。我好像做不到 我尝试了很多方法。内容脚本,背景脚本。什么都行不通。在我的manifest.json
我有权限activeTab
,contextMenus
。我尝试了多个函数来获取所选文本,但没有任何效果。部分函数示例
const text = (window.getSelection) ?
window.getSelection().toString() :
document.selection.createRange().text;
console.log(text)
chrome.contextMenus.create({
id: 'selectionGetter',
title: 'send selected text',
contexts: ['selection'],
});
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getSelection"},
function(response){
const url=response.url;
const subject=response.subject;
const body = response.body;
console.log(body)
});
});
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getSelection"},
function(response){
sendServiceRequest(response.data);
});
});
很想得到你的帮助
请参阅如何访问网页 DOM 而不是扩展页面 DOM?为了完整解释,这里有一个快速说明:
chrome.tabs.executeScript({code: 'getSelection().toString()'}, ([sel] = []) => {
if (!chrome.runtime.lastError) {
document.body.textContent = 'Selection: ' + sel;
}
});
如果你已经default_popup
在 manifest.json 中声明,那么把这段代码放在 popup.js 中,然后放在<script src=popup.js></script>
popup.html 中。每次显示弹出窗口时它都会运行。
否则将其放在后台脚本中的 chrome.browserAction.onClicked 侦听器中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句