我就是拿不到这东西。 ZeroClipboard 应该如何工作?为什么需要将 flash 元素移动到复制的文本上?

我读过这个东西:http://code.google.com/p/zeroclipboard/wiki/Instructions

有人可以为我提供一个简短的片段,当用户单击链接时,它可以将变量中的文本复制到用户剪贴板。这甚至可能吗?我不在乎,如果它不适用于所有浏览器(例如 IE6)。

我正在使用 jQuery。

最佳答案

您链接到的页面上给出的“最小示例”代码( http://code.google.com/p/zeroclipboard/wiki/Instructions#Minimal_Example )似乎是您想要的。我已将其复制到此处并对其进行了更改,以演示如何将文本放入变量中,然后将该文本复制到剪贴板,因为这是您感兴趣的内容。请注意,在现实生活中,您可能想要做的是在某个函数中调用 clip.setText() 部分,因为在首次加载页面时您可能不知道要复制什么文本。

<html>
<body>
        <script type="text/javascript" src="ZeroClipboard.js"></script>

        <div id="d_clip_button" style="border:1px solid black; padding:20px;">Copy To Clipboard</div>

        <script language="JavaScript">
                var clip = new ZeroClipboard.Client();
                var myTextToCopy = "Hi, this is the text to copy!";
                clip.setText( myTextToCopy );
                clip.glue( 'd_clip_button' );
        </script>
</body>
</html>

flash 元素不需要“覆盖复制的文本”;它需要“粘合”到您希望用户操作的任何 DOM 元素上——很可能是一个要单击的按钮。原因是 Javascript 无法访问剪贴板,因此您需要改用 Flash。但是 Flash 只能在用户的机器上运行以响应用户的点击——因此您通过将 Flash 设置为 HTML 元素上的不可见叠加层来“诱骗”用户点击 Flash。

我会注意到,虽然复制到用户剪贴板的特定示例可能是良性的,但这种方法让我感到困扰,因为不难想象隐藏的 flash 元素会做更多恶意的事情。

关于jquery - 如何在 jQuery 中实际使用 ZeroClipboard?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2805009/

10-15 15:03