【问题标题】:ZeroClipboard autocopy?ZeroClipboard 自动复制?
【发布时间】:2015-02-21 00:37:28
【问题描述】:

ZeroClipboard 是将文本复制到剪贴板的最简单和最好的方法,它使用不可见的 Adob​​e Flash 电影和 JavaScript 界面。

我试过了,这里可以,代码在这里,如果你想测试,点击here

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="http://www.paulund.co.uk/playground/demo/zeroclipboard-demo/zeroclipboard/ZeroClipboard.js"></script>
<script>
   $(document).ready(function()
   {

                   var clientTarget = new ZeroClipboard( $("#target-to-copy"), {
                 moviePath: "http://www.paulund.co.uk/playground/demo/zeroclipboard-demo/zeroclipboard/ZeroClipboard.swf",
                 debug: false
               } );

               clientTarget.on( "load", function(clientTarget)
               {
                   $('#flash-loaded').fadeIn();

                   clientTarget.on( "complete", function(clientTarget, args) {
                       clientTarget.setText( args.text );
                       $('#target-to-copy-text').fadeIn();
                   } );
               } );

       });
</script>
</head>
<body>
   <p id="flash-loaded" style="display:none">Flash player is loaded.</p>
   <h2>Set Copy Target</h2>
   <p>
      <button id="target-to-copy" data-clipboard-target="clipboard-text">Click To Copy</button><br/>
      <script type="text/javascript">
         // What I've done to auto-click

         $(document).ready(function(){
             $("#target-to-copy").click(); 
         });
      </script>
      <script>
         // What I've done to auto-click

         jQuery(function(){
            jQuery('#target-to-copy').click();
         });
      </script>
      <textarea name="clipboard-text"  id="clipboard-text" >COPY ME PLEASE!!!!!
        </textarea>
   </p>
   <p id="target-to-copy-text" style="display:none;">Text Copied.</p>
   <h2>Paste Test</h2>
   <textarea name="paste-test" id="paste-test"  placeholder="Paste Text Here"></textarea>

我的问题是我想在没有任何用户点击的情况下自动复制到剪贴板。我不打算做坏事(我正在构建一个聊天机器人,我希望他根据用户的请求将文本复制到剪贴板。这就是我尝试过的方法,在加载时单击 ID 为目标复制的按钮,使用 jquery;但它不起作用。

<script type="text/javascript">
             // What I've done to auto-click
             $(document).ready(function(){
                 $("#target-to-copy").click(); 
             });
</script>
<script>
             // What I've done to auto-click

             jQuery(function(){
                jQuery('#target-to-copy').click();
             });
</script>

我的最佳猜测是,adobe flash 要求用户实际点击按钮。加载时我(自动复制)的解决方案是什么?正如我之前所说,我正在创建一个智能聊天机器人,用户会与机器人聊天并请求将任何内容复制到剪贴板,然后机器人会用 jquery 命令响应复制到剪贴板,我不想要任何用户点击任何东西。

【问题讨论】:

  • "根据用户的要求将文本复制到剪贴板。"用户将如何表示这样的请求?
  • 用户将命令机器人将文本复制到剪贴板,方法是在文本区域写入文本并单击机器人的“询问”按钮。
  • 但用户也可能正在与机器人聊天,所以我可能并不总是知道他想复制到剪贴板。
  • 出于安全原因,我认为这是不可能的。

标签: jquery flash zeroclipboard


【解决方案1】:

根据the ZeroClipboard documentation,,这是不可能的:

限制

需要用户交互

由于浏览器和 Flash 安全限制,这种剪贴板注入会在用户点击不可见的 Flash 影片时发生。来自 JavaScript 的模拟 click 事件是不够的,因为这将启用 clipboard poisoning

There are other ways to programmatically set the clipboard text 但它们也需要某种形式的用户交互——例如,Ctrl-C(或 Command-C)。

【讨论】:

  • 但是 Ctrl-C 或 cmd-C 让我的机器人看起来很笨而不是聪明。
  • ...对不起?你将不得不面对现实的局限性。 不打算做坏事是无关紧要的。
  • 嗯,我明白了。然后,唯一的方法是将机器人的“询问”按钮链接到闪光灯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多