Как заменить символ в тексте при копировании с сайта

Какой тогда порядок работы, что где выполняется?
 
Насколько я помню, js вылавливает копирование, и дергает flash для уже дальнейшей работы с буфером.
Для просмотра ссылки Войди или Зарегистрируйся - посмотрите тут. Это самая распространенная библиотека для таких нужд.
 
на чистом js это сделать возможно,
работает это попросту говоря путем подмены текста до его попадания в буфер обмена.
единственный нюанс - IE как обычно, работает этот метод только для IE > 8

описание:
Для просмотра ссылки Войди или Зарегистрируйся

демка:
Для просмотра ссылки Войди или Зарегистрируйся

Но IE, что удивляет, имеет в данном случае свой плюс - он умеет работать с буфером обмена на запись.
решение для IE > 4

Для просмотра ссылки Войди или Зарегистрируйся
 
пф. ставим файрфокс. ставим плагин noscript. добавляем сайт в не доверенные. после чего смело копируем всю информацию ;)
 
При копировании информации с html-страницы нужно обработать скопированный текст (заменить символ) и вернуть обратно в буфер.

Попробуйте Для просмотра ссылки Войди или Зарегистрируйся - один из старейших скриптов для работы с буфером обмена
 
ааа это на флеше делается
 
Есть проблемка...
есть массив букв, знаков, которые необходимо заменить. Например, для перевода в транслит. Все это дело можно выполнить в виде массива: arr[ф] = 'f' и так далее.
Необходимо в тексте найти буквы из массива и заменить их.
Придумал только через str.replace( /ф+/g , f ), replace( /д+/g , d );
Т.е. если я делаю так: window.selection.replace( /ф{0,}/ , "f" ); То мне пишет, что selection.replace is not a function
В чем проблема? Я так понимаю, что возвращается не просто текст, а объект какой-то. Но найти в нем текст не могу. Сделал так: selection.toString().replace(). Но мне кажется это извращение.
И можно это дело как-то более компактно и быстрее?
 
Последнее редактирование:
danneo

Код:
var a ={"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"'","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"'","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"'","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"'","б":"b","ю":"yu"};

function translite(word) {
  return word.split('').map(function(char){
    return a[char]||char;
  }).join("");
}
 
danneo

Код:
var a ={"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"'","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"'","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"'","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"'","б":"b","ю":"yu"};

function transliterate(word) {
  return word.split('').map(function(char){
    return a[char]||char;
  }).join("");
}
Как эта функция работает, не понял. Но все равно...
Ведь эту функцию нужно еще вызывать. Мне нужно передать туда текст, а обратно получить транслит. Если символа нет, то оставить символ без изменения.
 
Назад
Сверху