我有一个工作剪贴板脚本,我必须在我们的门户页面上使用它来利用剪贴板功能。我们正在从 IE/Edge 迁移到 Chrome,而且这个脚本似乎在 Google Chrome 中不起作用。如果我们能找到一种方法使代码兼容 chrome/多浏览器,而不必为仅 Chrome 编写新脚本,我会很高兴的。
虽然我有一个适用于 Chrome 的工作脚本,但这意味着我必须使用剪贴板重新构建数百个页面,我宁愿让脚本已经嵌入到所有这些页面中,与 chrome 兼容。下面是我正在使用的脚本:
(function() {
'use strict';
// click events
document.body.addEventListener('click', copy, true);
// event handler
function copy(e) {
// find target element
var
t = e.target,
c = t.dataset.copytarget,
inp = (c ? document.querySelector(c) : null);
// is element selectable?
if (inp && inp.select) {
// select text
inp.select();
try {
// copy text
document.execCommand('copy');
inp.blur();
// copied animation
t.classList.add('copied');
setTimeout(function() { t.classList.remove('copied'); }, 1500);
}
catch (err) {
alert('please press Ctrl/Cmd+C to copy');
}
}
}
})();
// Button must include data-copytarget="#website" with the #xxx matching the element id
结果:在 IE/Edge 中,您单击按钮,分配给该按钮的文本将添加到剪贴板以进行粘贴。然而,在 Chrome 中,点击按钮并没有任何反应。
相关分类