Я пишу расширение Chrome, и мне нужно передать значение, которое пользователь выбрал на веб-сайте, на мой сервер. Я использую код window.getSelection(), который возвращает объект диапазона. Я использую JSON, чтобы передать объект диапазона обратно на мой сервер, но он не работает. Я новичок в этом, но я думаю, что проблема заключается в том, что вы можете передавать только текст с помощью JSON, а объект диапазона включает в себя как структуру DOM (которая не является текстом), так и фактический выбор текста (который является текстом) , Я прав? Есть ли альтернатива?Объект диапазона с JSON
var selection = window.getSelection();
$.getJSON(url, {data:selection}, function(moot) {
alert("done");
});
Я не пробовал .ToString() еще. Я попробую это немного. Я обеспокоен тем, что мне нужно сохранить структуру DOM, поскольку я буду использовать этот выбор позже. – Jon
Я дал .toString() попытку, и она действительно вернула только текстовое значение сама по себе :) То, что мне было нужно, также является структурой DOM. Причина этого в том, что мне нужно будет отобразить текст, который пользователь выделил позже, и единственный способ, которым я решил, как это сделать, - найти текст с помощью структуры DOM. – Jon
Вы также можете попробовать использовать свойства anchorNode и focusNode. Я обновлю ответ. – Gopherkhan