Отправка текста через 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, время: 13:49. |