Как получить содержимое внешней страницы в виде объекта javascript? - PullRequest
2 голосов
/ 05 декабря 2011

Итак, я знаю, что есть много способов получить содержимое внешней страницы в виде строки (например, с помощью PHP), но есть ли способ получить его как объект javascript / JSON (например, объект DOM Window), так Я могу легко манипулировать этим? Я думал, возможно, работать с iframes, но, как всегда, применяется та же политика происхождения. Я чувствую, что это может быть невозможно по замыслу, но мне интересно попробовать. У кого-нибудь есть креативное решение для этого? Я не хочу использовать вспышку или фонарик (из-за проблем с iPhone).

Ответы [ 3 ]

2 голосов
/ 05 декабря 2011

только способ сделать это через ваш сервер. Предоставьте некоторый метод AJAX для извлечения внешних веб-страниц (или одной конкретной веб-страницы) и позвольте серверу выполнять работу вместо клиента.

Добавлено:

Для PHP вы можете сделать это следующим образом:

  1. Создать файл getremotecontent.php
  2. Использование file_get_contents выборки желаемого URL (в файле PHP):

    $pagestr = file_get_contents('http://www.example.com/');
    
  3. Использование json_encode для кодирования результирующей строки в объект JSON.

    $pagejson = json_encode($pagestr);
    
  4. Далее отправьте соответствующие заголовки:

    header('Cache-Control: no-cache, must-revalidate');
    header('Content-type: application/json; charset=utf-8');
    
  5. Наконец, отправьте содержимое закодированной строки:

    print $pagejson;
    
  6. В Javascript сделайте запрос Ajax (XHR) на getremotecontent.php. Сервер получит вашу веб-страницу, закодирует ее в формате JSON и вернет для обработки на стороне клиента.

1 голос
/ 05 декабря 2011

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

0 голосов
/ 05 декабря 2011

Это возможно с jQuery

http://api.jquery.com/load/

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