gpt4 book ai didi

javascript - Chrome扩展程序-如何选择选项卡的所有文本并复制

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:33 25 4
gpt4 key购买 nike

谁能告诉我如何复制整个页面,类似于按 Ctrl+A,然后将当前选项卡复制到剪贴板。

目前我有这个,但它没有做任何事情,虽然扩展已成功添加到 chrome:

list 文件

"permissions":
[
"clipboardRead",
"clipboardWrite"
],
// etc

内容脚本

chrome.extension.sendRequest({ text: "text you want to copy" });

背景页面

<html>
<head>
<script type="text/javascript">
chrome.extension.onRequest.addListener(function (msg, sender, sendResponse) {

var textarea = document.getElementById("tmp-clipboard");

// now we put the message in the textarea
textarea.value = msg.text;

// and copy the text from the textarea
textarea.select();
document.execCommand("copy", false, null);


// finally, cleanup / close the connection
sendResponse({});
});
</script>
</head>

<body>
<textarea id="tmp-clipboard"></textarea>
</body>
</html>

弹窗

<textarea id="tmp-clipboard"></textarea>
<input type="button" id="btn" value="Copy Page">

我无法让它工作,想知道我在这里缺少什么。

任何人都可以指导如何模仿当前选项卡的 Ctrl+A 后跟 Ctrl+C以便它存储在剪贴板中?

最佳答案

您的代码中存在多个问题

  • 来自 Chrome 20 的 sendRequest 是 deprecated赞成sendMessage
  • Chrome 20 onRequest.addListener 是 deprecated赞成 onMessage.addListener
  • Due to CSP你的代码中不能有标签

消除这些问题后,您的代码将按预期工作。

演示

您的用例示例演示

list .json

确保 list 具有所有权限和注册

{
"name":"Copy Command",
"description":"http://stackoverflow.com/questions/14171654/chrome-extension-how-to-select-all-text-of-tab-and-copy",
"version":"1",
"manifest_version":2,
"background":{
"page":"background.html"
},
"permissions":
[
"clipboardRead",
"clipboardWrite"
],
"content_scripts":[
{
"matches":["<all_urls>"],
"js":["script.js"]
}
]
}

背景.html

确保它遵守所有安全更改

<html>
<head>
<script src="background.js"></script>
</head>
<body>
<textarea id="tmp-clipboard"></textarea>
</body>
</html>

背景.js

添加监听器来模拟 Ctrl + ACtrl + C

chrome.extension.onMessage.addListener(function (msg, sender, sendResponse) {
//Set Content
document.getElementById("tmp-clipboard").value = msg.text;
//Get Input Element
document.getElementById("tmp-clipboard").select();

//Copy Content
document.execCommand("Copy", false, null);
});

contentscript.js

传递要复制的内容

chrome.extension.sendMessage({ text: "text you want to copy" });

引用资料

关于javascript - Chrome扩展程序-如何选择选项卡的所有文本并复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com