Копировать в буфер обмена не работает на FireFox - PullRequest
2 голосов
/ 15 января 2010

Я реализовал функцию копирования в буфер обмена. Он отлично работает со всеми версиями в 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 Ответ

10 голосов
/ 15 января 2010

Метод, который вы используете для копирования текста в буфер обмена - это плагин jQuery clipboard; он использует собственные возможности IE для копирования текста в буфер обмена, но использует плагин Flash на платформах не-IE. Я держу пари, что у вас есть Flash 10 на вашем компьютере или, по крайней мере, на компьютере, на котором вы тестируете Firefox - Flash 10 больше не позволяет манипулировать буфером обмена без явного запроса пользователя, поэтому, вероятно, вы видите, что он не работает на Fire Fox. (Это даже упоминается в примечаниях к выпуску для плагина.)

При этом люди уже нашли способ обойти ограничения безопасности; Обходной путь заключается в размещении невидимого Flash-ролика поверх выбранного вами элемента DOM, что означает, что когда пользователь щелкает или иным образом вызывает элемент для отправки данных, Flash-ролик регистрирует, что пользователь предпринял явное действие, и разрешает манипулирование буфером обмена. Нулевой буфер обмена - одна из таких библиотек, предоставляющая обходной путь, но есть и другие, если вы ищете их.

...