2014-11-04 2 views
0

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

var myWindow = window.open("http://www.w3schools.com/jsref/met_win_open.asp", "MsgWindow", "width=200, height=100"); 
x = myWindow.document.innerHTML; 
alert(x); 
+0

FWIW, я бы посоветовал using'console.log' вместо 'alert'. – fxm

+1

Лучший способ отладить такие проблемы - проверить инструменты разработчика в вашем браузере. Вы можете поместить точку останова на определенную строку и посмотреть, что выводит. – vatsal

ответ

1

Есть по крайней мере две проблемы: там

  1. Вы пытаетесь получить информацию, прежде чем он (если указан window.open вызов возвращается немедленно, до того, как на самом деле страница загружена).

  2. Вы не можете получить доступ к информации из других источников из-за Same Origin Policy, если только этот сайт специально не позволяет вам.

Эта вторая проблема в значительной степени делает то, что вы пытаетесь сделать на стороне клиента без помощи другого сайта. Вместо этого вам придется иметь сервер, который запрашивает информацию с другого сайта, а затем отправляет его на вашу страницу. (Это не обязательно должен быть ваш сервер, это возможно use YQL as a cross-domain proxy и есть, вероятно, другие подобные услуги там.)

Смежные вопросы