兼容浏览器的页面复制代码

关于这个问题,目前网上大部分的代码都是只兼容IE的。因为之前实现这个功能都是用到了一个IE的控件。但前不久做一个任务的时候也碰到了这个需求,但是要全兼容,所以就找了一下,现在有了一种新的办法来解决这个问题,是通过一个FLASH来解决的。

原理其实很简单,是利用了AS3中的 System.setClipboard() 方法,因为是通过FLASH实现的,所以没有浏览器上的兼容性问题,用法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<SCRIPT type=text/javascript>
 function copy(meintext) {
  if (window.clipboardData) {
      window.clipboardData.setData("Text", meintext)
  } else {
 var flashcopier = 'flashcopier';
 if(!document.getElementById(flashcopier)) {
        var divholder = document.createElement('div');
  divholder.id = flashcopier;
  document.body.appendChild(divholder);
 }
 document.getElementById(flashcopier).innerHTML = '';
 var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(meintext)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
     document.getElementById(flashcopier).innerHTML = divinfo;
 }
 alert('地址已经复制到您的剪贴板!');
 }
</SCRIPT>
</head>
 
<body>
<input type="button" value="复制本文链接" onclick="javascript:copy(window.location.href);return false;" />
</body>
</html>

其中的 src=”_clipboard.swf” ,路径换成你自己的路径,文件下载如下:

clipboard.rar

相关文章

Moondy 发表于 2010-1-1 7,907 Views | 类别: JS/Ajax

5条留言 立即发表评论

  1. #1狐狸 @ 2010-1-14 20:08 回复

    听说谷歌准备开路了,谷歌开路了对贵站的影响有多大呀?

    • Moondy @ 2010-1-17 01:56 回复

      应该没什么影响,我并不追求有多高的点击量

  2. #2狐狸 @ 2010-1-31 16:40 回复

    我又回来啦,关注贵站很久了,博客的访问量大吗?

    • Moondy @ 2010-2-9 16:36 回复

      不怎么大,呵呵,其实我不怎么关注这个

  3. #3狐狸 @ 2010-2-8 21:55 回复

    呵呵,路过,顶一下。

评论

:icon07 :icon02 :icon16 :icon23 :icon37 :icon05 :icon38 :icon35 more »
(Ctrl + Enter)