jQuery: запросить возвращенную строку $ .get () - PullRequest
0 голосов
/ 02 октября 2009

Как я могу запросить строку, полученную через $ .get? Например, я хочу форму Google только тело HTML:

$.get("www.google.com", function(data){
var body = $("body", data).html(); //This doesnt work
});

Возможно ли это вообще? спасибо

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Во-первых, это не сработает, потому что вам нужен анализатор HTML. Другая причина в том, что, если вы не сделаете это на www.google.com, это не сработает из-за той же политики происхождения . Есть способы обойти это, наиболее популярным является JSONP , но это также может быть сделано вручную, без использования метода jsonp, определенного jQuery.

Редактировать:
Если вы не хотите решать проблемы получения контента из другого домена в вашем JavaScript, альтернативным методом будет использование вашего сервера, будь то PHP, .NET и т. Д., Чтобы извлечь удаленную страницу и затем вернуть ее JavaScript с использованием AJAX. Это может занять немного больше времени, чем непосредственно в js, так как вы делаете 2 запроса вместо одного. Однако, в зависимости от ваших серверных инструментов, вам может быть проще разбирать html вместо того, чтобы делать это в js, так что вам будет проще получить то, что вы хотите, на своей странице.

2 голосов
/ 02 октября 2009

Нет, jQuery не может напрямую получить доступ к DOM страницы, которая была загружена через XmlHttpRequest. Чтобы сделать это, вы должны будете использовать HTML-анализатор, написанный на JavaScript, например , который Джон Резиг написал . Это все же гораздо более сложная задача, чем вы, вероятно, ожидали.

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