我正在创建一个网站,其中的主要问题是从剪贴板粘贴内容,以及扩展内容。
我想在打开特定页面时自动粘贴剪贴板内容。
由于某种原因,加载页面时不执行execCommand(“粘贴”)。
content.js
setTimeout(function() { chrome.extension.sendMessage({greeting: "hello"},function(response){}); },200);
background.js
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
document.execCommand("Paste");
sendResponse({});
return true;
});
的manifest.json
"background": {
"page": "src/bg/background.html",
"persistent": true
},
"options_page": "src/options/index.html",
"permissions": [
"clipboardRead",
"clipboardWrite",
"fileBrowserHandler",
"*my website address*"
],
"content_scripts": [
{
"matches": [
"*my website address*"
],
"js": ["js/content.js"],
"run_at": "document_end"
}
]
一切都很好,直到需要完成粘贴并且它不起作用...
谢谢:)
答案 0 :(得分:0)
http://caniuse.com/#search=clipboardData
说使用document.execCommand('paste')
不会触发“粘贴”命令显然还有其他方法可以复制和制作副本。粘贴,但这一切都取决于兼容性。 我仍在浏览寻找一个很好的解决方案。
答案 1 :(得分:-1)
不确定这是否是您要查找的内容,但这是有关剪贴板API的Google教程:
https://developers.google.com/web/updates/2018/03/clipboardapi
显然,您需要一个变量来保存document.execCommand('paste')
的结果:
button.addEventListener('click', e => {
const input = document.createElement('input');
document.body.appendChild(input);
input.value = text;
input.focus();
input.select();
const result = document.execCommand('copy');
if (result === 'unsuccessful') {
console.error('Failed to copy text.');
}
})