我花了几个小时在网上搜索解决方案.我想做的是将页面上突出显示的文本转移到chrome扩展名的popup.html中的textarea.我想知道是否有人可以为我提供可以执行此操作的扩展程序的建议源代码.
这是我认为最有用的最相关的线程 - 查询类似.弹出窗口中的按钮,用于获取所选文本 - Chrome扩展程序
我尝试复制代码并将其作为扩展名运行,但它没有获得突出显示的文本.想知道是否有人有任何建议以及如何解决这个问题.非常感谢你.
我正在开发一个chrome扩展,它涉及获取当前选项卡的选定文本.这是我使用的html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
chrome.tabs.executeScript( {
code: "window.getSelection().toString();"
}, function(selection) {
document.getElementById("output").value = selection[0];
});
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它不起作用,为什么?以下是来自Chrome App和Extension Developer Tool的错误消息,其中一些错误消息是用省略号剪切的,抱歉我还没弄清楚如何在这里查看完整的错误消息,查看详细信息只给出了堆栈跟踪,而不是完整的错误消息.
这可能是一个非常初学的问题,但是我要拔掉头发,因为我无法弄清楚我做错了什么.此时,我要做的就是让所选文本在警报或控制台中打印(用于测试).我确保已将.toString()方法添加到返回的对象中,window.getSelection().无论我做什么,控制台和警报显示为空白.谁有人解释为什么?
我在本地Chrome扩展程序中执行此操作.
的manifest.json
{
"manifest_version": 2,
"name":"Testing",
"version": "0.1",
"icons": {
"48":"48.png"
},
"background": {
"scripts": [ "background.js" ]
},
"permissions":[ "tabs" ],
"browser_action": {
"default_icon": { "19":"img19.png" }
}
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的
chrome.browserAction.onClicked.addListener(function(tab) {
var selObj = window.getSelection();
var selectionText = selObj.toString();
alert(selectionText); // displays a blank alert
console.log(selectionText); // adds a blank line in the console
});
Run Code Online (Sandbox Code Playgroud)
我在学.提前致谢.