js兼容多浏览器的复制链接地址

<script>
function copyToClipboard(meintext) {
if (window.clipboardData) {
window.clipboardData.setData("Text", meintext)
} else {
var flashcopier = 'flashcopier';
if(!document.getElementByIdx_x(flashcopier)) {
var divholder = document.createElement_x('div');
divholder.id = flashcopier;
document.body.appendChild(divholder);
}
document.getElementByIdx_x(flashcopier).innerHTML = '';
var divinfo = '<embed src="module/vote/templates/default/swf/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(meintext)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
document.getElementByIdx_x(flashcopier).innerHTML = divinfo;
}
alert('复制成功!');
}

copyToClipboard("http://control.cublog.cn/index.php?j=http://control.cublog.cn/article_new.php");
</script>

首先从网上下个 _clipboard.swf ,然后再使用这段函数,OK!

很好用的。。。
上面这个一点都不好用,_clipboard.swf 没起作用,无语。

用下面的方法吧,兼容火狐和IE的。
<script>
function copyToClipboard(txt) {
if(window.clipboardData) {
window.clipboardData.setData("Text", txt);
alert("复制成功!")
} else if(navigator.userAgent.indexOf("Opera") != -1) {
window.location = txt;
} 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 = txt;
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("复制成功!")
}
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS无法实现点击A标签就把内容自动复制到剪切板的功能,需要使用JavaScript来实现。具体的做法是,用JavaScript监听A标签的点击事件,当点击事件发生时,利用浏览器提供的API将内容复制到剪贴板中。下面是一个示例代码: HTML代码: ``` <a href="#" class="copy" data-clipboard-text="这是要复制的内容">点击复制</a> ``` 在这个示例中,我们创建了一个带有class为`copy`的A标签元素,并将要复制的内容通过`data-clipboard-text`属性传递。在JavaScript中,我们使用了Clipboard API来实现复制到剪贴板的功能,并使用`addEventListener`方法来为A标签元素添加点击事件监听器。示例代码如下: JavaScript代码: ``` const copyBtns = document.querySelectorAll('.copy'); copyBtns.forEach(btn => { btn.addEventListener('click', event => { event.preventDefault(); const text = btn.dataset.clipboardText; navigator.clipboard.writeText(text).then(() => { console.log('复制成功'); }).catch(() => { console.log('复制失败'); }); }); }); ``` 在这个示例中,我们使用了`querySelectorAll`方法来获取所有class为`copy`的A标签元素,并使用`forEach`方法遍历它们。然后,我们为每个元素添加了一个点击事件监听器,当元素被点击时,获取要复制的内容,然后调用`navigator.clipboard.writeText`方法将内容复制到剪贴板中。在成功或失败后,我们使用`console.log`方法输出信息。需要注意的是,由于Clipboard API目前仅在较新的浏览器中得到支持,因此在使用时需要进行兼容性检查。另外,为了防止A标签的默认行为(即跳转到指定链接),我们在事件监听器中调用了`event.preventDefault()`方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值