3

ZeroClipboard 是一个 javascript + flash 脚本,它允许浏览器将文本放入剪贴板,它在所选元素上放置一个透明的 flash,当您单击它时,您可以将文本插入剪贴板,这可行,没问题,但我想要使其自动化。Onload 在剪贴板中放置一个字符串,以便用户以后可以粘贴它。一些代码 main.js

$('document').ready(function() {
ZeroClipboard.setMoviePath("http://url/to/ZeroClipboard.swf");
  var clip=new ZeroClipboard.Client();
 clip.on( 'load', function(client) {
   clip.glue('#redirlink');
} );
});

html

<!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" xml:lang="en-gb" lang="en-gb" dir="ltr" >
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="main.js"></script>

    <title>TEST</title>
  </head>
  <body>


      <div >
     <a  id="redirlink" data-clipboard-text="abcd" href="http://alabala.com" >Click HERE</a>

    </div>

  </body>
</html>

好的,现在问题是我如何模拟 zeroClipboard 放置的点击事件?我试过了,$('#obkect_id").click();它不起作用(事件触发,但它对剪贴板没有影响,但是当我用鼠标单击时,它起作用了)。有什么办法可以实现吗?

4

2 回答 2

4

ZeroClipboard 的最新版本已经取消了 Client()。因此代码也发生了一些变化。在此处从Github下载最新版本

然后说你想在页面/元素加载时更新/放置一些字符串。假设单击具有 id '#id' 的'元素',剪贴板需要加载一些文本

<script>
var str = 'Some text';
$('element').attr('data-clipboard-text','str');
ZeroClipboard.setDefaults({moviePath:'http://...../ZeroClipboard.swf'});
var clip = new ZeroClipboard($('#id'));
clip.on('complete',function(client, args){
alert('Copied');
});
</script>

希望这可以帮助

于 2013-07-31T05:11:43.650 回答
1

不幸的是,您无法模拟对 Flash 对象的单击,并将其设置在剪贴板http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/desktop/Clipboard.html#中。这是 Adob​​e 的一项安全预防措施。

于 2012-12-29T06:55:14.620 回答