复制到剪贴板不能在FireFox上工作

时间:2010-01-15 14:05:30

标签: flash firefox copy clipboard

我已经实现了复制到剪贴板功能。它适用于IE上的所有版本,但不适用于FireFox。请帮我解决这个问题。 细节是

<script src="../../Scripts/JQPlugins/jquery.clipboard.js" type="text/javascript"></script>

<script src="../../Scripts/JQPlugins/jquery.clipboard.pack.js" type="text/javascript"></script>   
 <script type="text/javascript">
        $.clipboardReady(function() {
            $("input#buttonid").bind('click', function() {
                var text = $("#url").attr("href") + "\n" + $("#pwd").html();
                $.clipboard(text);
                alert("hi");
                return false;
            });
        }, { swfpath: "../../Scripts/JQPlugins/jquery.clipboard.swf", debug: true }); 

    </script> 

我的代码文件结构是

Project > Scripts > JQPlugins > 
1. jquery.clipboard.js
2. jquery.clipboard.pack.js
3. jquery.clipboard.swf

1 个答案:

答案 0 :(得分:10)

用于将文本复制到剪贴板的方法是jQuery剪贴板插件;它使用IE的本机功能将文本复制到剪贴板,但在非IE平台上使用Flash插件。我敢打赌你的机器上有Flash 10,或者至少在你正在测试Firefox的机器上 - Flash 10不再允许剪贴板操作而没有明确的用户请求,这可能就是为什么你看到它无法工作的原因Firefox浏览器。 (这个插件甚至提到in the release notes。)

话虽如此,人们已经找到了安全限制的解决方法;解决方法涉及在您选择的DOM元素上放置一个不可见的Flash影片,这意味着当用户单击或以其他方式调用元素来提交数据时,Flash影片会注册用户采取显式操作,并允许剪贴板操作。 Zero Clipboard就是这样一个提供解决方法的库,但如果你找到它们,还有其他的。