我已经实现了复制到剪贴板功能。它适用于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
答案 0 :(得分:10)
用于将文本复制到剪贴板的方法是jQuery剪贴板插件;它使用IE的本机功能将文本复制到剪贴板,但在非IE平台上使用Flash插件。我敢打赌你的机器上有Flash 10,或者至少在你正在测试Firefox的机器上 - Flash 10不再允许剪贴板操作而没有明确的用户请求,这可能就是为什么你看到它无法工作的原因Firefox浏览器。 (这个插件甚至提到in the release notes。)
话虽如此,人们已经找到了安全限制的解决方法;解决方法涉及在您选择的DOM元素上放置一个不可见的Flash影片,这意味着当用户单击或以其他方式调用元素来提交数据时,Flash影片会注册用户采取显式操作,并允许剪贴板操作。 Zero Clipboard就是这样一个提供解决方法的库,但如果你找到它们,还有其他的。