Скопировать в contenteditable <span> - PullRequest
0 голосов
/ 25 января 2012

Мне нужно скопировать содержимое в тег span <span contenteditable="true">//content</span>, но оно не реализовано в FireFox, есть ли какие-то решения для этого?и это мой промежуток http://jsfiddle.net/watxD/

Ответы [ 2 ]

1 голос
/ 26 января 2012

A. var Result = $('span[contenteditable="true"]').text();

B. var Result = $('span[contenteditable="true"]').html();

C. Список узлов внутри: var Result = $('span[contenteditable="true"]').contents();

D. Вы можете сделать это с помощью библиотеки Rangy http://code.google.com/p/rangy/. (она использует собственные методы для FF, Chrome, Opera, IE9 и не-собственные для IE <= 8) Код ниже использует jQuery - но вы можете переписать его на чистом узле Javascript </p>

  1. Вам необходимо создать диапазон для вашего узла

    var Range = rangy.createRange();
    
  2. Вам необходимо выбрать содержимое узла

    Range.selectNodeContents( $('span[contenteditable="true"]')[0] )
    
  3. Представьте результат, как вы хотите:

    var Result = Range.toString(); // Returns the text contained within the range.
    
    var Result = Range.toHtml(); // Returns a string containing an HTML representation of the range. 
    
0 голосов
/ 25 января 2012

Не существует чистого способа JavaScript сделать это в Firefox, не требуя от пользователя возиться со своими предпочтениями.Разрешение общего доступа к системному буферу обмена из JavaScript опасно, поэтому пользователь может не захотеть этого делать.Вот статья, которая описывает проблемы и как включить доступ к буферу обмена в Firefox.Я не знаю, актуальна ли она.

http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboard

Другой вариант - это хакерский обходной путь на основе Flash, такой как ZeroClipboard .

...