2010-01-15 1 views
1

Я реализовал функцию копирования в буфер обмена. Он отлично работает со всей версией IE, но не работает в FireFox. Пожалуйста, помогите мне решить эту проблему. Деталь являютсяКопирование в буфер обмена, не работающий на 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

Возможно, я ошибаюсь, но главная причина, по которой эта функция не реализована, связана с проблемами безопасности. – jldupont

+0

не могли бы вы объяснить мне, пожалуйста, – Pankaj

+0

Pankaj, версии Flash до 10 позволили Flash взаимодействовать с буфером обмена без одобрения пользователя, что было (по крайней мере) раздражающим и (по крайней мере) проблемой безопасности. Вспышка 10 больше не позволяет этого; см. мой ответ ниже, но я подозреваю, что это то, к чему вы столкнулись. – delfuego

ответ

9

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

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

+0

Спасибо @@ delfuego .. ты мой единственный сигнал надежда .. Пожалуйста, скажите мне, что я должен сделать, чтобы исправить эту проблему? могу ли я изменить код и перейти к другому типу реализации или попробовать другие вещи? – Pankaj

+0

Pankaj, я показал вам один вариант - перейдите в связанную библиотеку нулевого буфера обмена. На их сайте есть хорошо написанная страница инструкций, объясняющая, как вы ее интегрируете в свой проект. – delfuego

+0

Увлекательно, что это получило понижение, кстати ... что дает? Не то, чтобы меня это беспокоило, я просто озадачен ... о, я вижу, похоже, кто-то (легко догадаться), который систематически проходит и заворачивает мои вклады на сайт. Приятно, хорошо. – delfuego

 Смежные вопросы

  • Нет связанных вопросов^_^