js实现自动复制(不是点击),能够兼容所有浏览器

js访问页面实现自动复制,兼容所有浏览器,不是点击页面元素,而是访问就能复制到剪切板。
用Clipboard.js就行,主要是实现自动 复制。

Clipboard.js可以

clipboard.js自动复制测试了不行,会报错,需要人工点击过复制按钮才行。

 <script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
<textarea id="ta">felfjelfj</textarea>
<button id="target" action="copy" data-clipboard-target="#ta">Copy to clipboard</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>
<script>
    var clipboard = new Clipboard('#target'),timer;
    clipboard.on('success', function (e) { e.clearSelection(); clearInterval(timer);alert('复制成功,停止计时器') });
    clipboard.on('error', function (e) {  console.log('error',e)});
    $(window).load(function () {//自动复制
       timer= setInterval(function () { $('#target').trigger('click'); }, 1000)
    })
</script>

自动是怎么个说法,总得有个触发事件,比如定时触发,页面加载前触发,页面加载后触发,点击触发,鼠标触发,内容改变后触发。。。。。。。

自动复制是不能实现的,浏览器有安全机制,必须用户至少进行了一次点击操作才可以

function clipboard(Data) {
if (window.clipboardData) {
window.clipboardData.clearData();
window.clipboardData.setData("Text", Data);
alert("您的邀请宣言和专属链接已复制,请Ctrl+V或粘贴给您的老友!")
} else if (navigator.userAgent.indexOf("Opera") != -1) {
window.location = Data;
alert("您的邀请宣言和专属链接已复制,请Ctrl+V或粘贴给您的老友!");
} else if (window.netscape) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将 'signed.applets.codebase_principal_support'设置为'true'");
}
var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
if (!clip)
return;
var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return;
trans.addDataFlavor('text/unicode');
var str = new Object();
var len = new Object();
var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
var copytext = Data;
str.data = copytext;
trans.setTransferData("text/unicode", str, copytext.length * 2);
var clipid = Components.interfaces.nsIClipboard;
if (!clip)
return false;
clip.setData(trans, null, clipid.kGlobalClipboard);
alert("您的邀请宣言和专属链接已复制,请Ctrl+V或粘贴给您的老友!")
}
}

来自http://blog.csdn.net/Astpiy/article/details/8835309

可以将点击事件执行的方法在页面加载完成之后就执行。例如:

 <script>
window.onload(function(){
    ...
        your coue...
        ...
});
</script>

<br> window.ready(function(){<br> //你的代码<br> });<br>