任何人都可以告诉如何复制整个页面,类似于按Ctrl + A,然后将当前标签复制到剪贴板。
目前我有这个但是虽然扩展已成功添加到chrome:
但它没有做任何事情清单文件
"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 获取当前标签以便它存储在剪贴板中?
答案 0 :(得分:6)
您的代码中存在多个问题
消除这些问题后,您的代码将按预期工作。
您的用例示例演示
确保清单具有所有权限和注册
{
"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>
<head>
<script src="background.js"></script>
</head>
<body>
<textarea id="tmp-clipboard"></textarea>
</body>
</html>
添加了侦听模拟 Ctrl + A 和 Ctrl + 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);
});
传递要复制的内容
chrome.extension.sendMessage({ text: "text you want to copy" });