Отправка текста через ajax
Добрый день.
Передаю текст из выделения в переменную: if (window.getSelection) { text = window.getSelection(); }else if (document.getSelection) { text = document.getSelection(); }else if (document.selection) { text = document.selection.createRange().text; } Отправляю данные через ajax: jQuery('body').bind({ copy:function(){ jQuery.ajax({ url: '/text.php', type: 'POST', data: { 'text': text } }); } }); }); если прописываю передачу данных так: data: { 'text': 'text' } то срабатывает, передаёт, но только слово text, а если переменной: data: { 'text': text }, то в консоли ошибка: Uncaught TypeError: Illegal invocation В чем причина? Спасибо заранее. Апд: Если перед jQuery.ajax({ вставляю alert(text); выделенный текст выводит верно. |
Янковиц,
data: '{text:' + text + '}' Или data: 'text:' + text |
Попробовал оба варианта. Не работает:(
|
Янковиц,
Тогда остается только data: { 'text:' + text } |
Янковиц,
text = window.getSelection() - здесь text, это объект, а jQuery.ajax не сериализует его автоматически, поэтому и ошибка. |
Как мне её устранить?
|
Посмотрите на свой код - для IE у вас возвращается текст, а для других объект. Здесь описание вашей проблемы.
|
Прочитал, но мало что понял.
Получается, нужно window.getSelection преобразовать в текст. Делается это через toString(); ??? |
Все сработало :) Спасибо большое за наводки
|
Часовой пояс GMT +3, время: 12:16. |