我最近第一次创建了chrome扩展程序。我的页面上有一个复制按钮,当扩展程序作为网页加载时,该按钮可以正常工作。但是,当我将其作为扩展加载时,复制功能不起作用。
我的manifest.json
权限如下:
"permissions": [
"webNavigation",
"storage",
"clipboardWrite",
"clipboardRead"
]
我的popout.html
页中要复制的代码如下:
<div id="legacyCopyLabel">
<a onclick="copyText(getElementById('legacy'))" class="alignright">COPY</a>
</div>
和我的JavaScript代码中的copyText()
函数如下:
function copyText(element) {
var range, selection, worked;
if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
try {
document.execCommand('copy');
updateStatus ('Copied address', 'info');
}
catch (err) {
alert('Unable to copy the address');
}
}
如果要查看完整的代码,请点击这里:https://github.com/markallisongit/handcash-chrome
Chrome扩展程序位于以下位置的chrome存储中:https://chrome.google.com/webstore/detail/handcash-handle-converter/bnkohbkbipagdhplhkhgonbalbjigpoh
答案 0 :(得分:1)
它不起作用,因为您使用内联JS:<a onclick="...">
。
根据Chrome的内容安全策略:
将不执行嵌入式JavaScript。此限制禁止内联块和内联事件处理程序(例如)。
解决方案是将您的代码放入单独的.js
文件中,并将其作为普通的JS脚本包含在内。