Безопасный анализ / работа с HTML из XMLHttpRequest - PullRequest
4 голосов
/ 27 ноября 2011

Я пишу код (сейчас это расширение Chrome, хотя я могу сделать его кросс-браузерным или попытаться заставить владельцев сайтов включить расширение), которое работает с содержимым определенного <div> на веб-страница, которую просматривает пользователь, и любые страницы, являющиеся частью одной и той же ветки обсуждения. Поэтому я нахожу ссылки на другие страницы ветки и получаю их с помощью XMLHttpRequest. Что я хочу сделать, так это просто использовать .getElementsByClassName('foo') на полученной странице.

Я знаю, что могу сделать это, загрузив результаты запроса в div (т. Е. Оптимальный способ извлечь URL из веб-страницы, загруженной через XMLHTTPRequest? ). Однако, выясняя лучший способ сделать это, я прочитал, что существуют проблемы с безопасностью ( MDN - Безопасный анализ простого HTML в DOM ).

В этом случае я не уверен, что это имеет большое значение, так как расширение просто загрузит страницу из той же ветки комментариев, на которую уже смотрел пользователь, но я все же хотел бы сделать это правильно.

Так, как правильно работать с HTML с XMLHttpRequest?

P.S. Если лучший ответ - jQuery, то скажите мне об этом, но я еще не начал использовать jQuery, а также хотел бы узнать основы здесь.

Редактировать: я не знаю, почему я сформулировал все так, как я, но позвольте мне прояснить, что я действительно надеюсь на ответ без JQuery. Я пытался изучить основы javascript перед изучением JQuery, и я предпочел бы не импортировать целую инфраструктуру для вызова одной функции, когда я не понимаю, что я делаю. Это может показаться иррациональным, но это то, чем я сейчас занимаюсь.

1 Ответ

0 голосов
/ 27 ноября 2011

Поскольку вы говорите, что не против использования jQuery, вам следует взглянуть на функцию load . Он загружает html с указанного вами адреса, а затем помещает его в соответствующие элементы. Так например

$("#formDiv").load("../AjaxContent/AdvSearchForm.aspx?ItemType=" + ItemType);

Загрузил бы html из ../AjaxContent/AdvSearchForm.aspx, затем поместил бы его в div с идентификатором formDiv

Существуют необязательные параметры для передачи данных на сервер с запросом, а также функция обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...