2014-11-04 4 views
0

자바 스크립트로 열었지만 내 코드가 작동하지 않는 페이지의 콘텐츠를 가져 오기 위해이 코드를 작성했습니다. 내 코드에 무슨 문제가 있는지 말해 줄 수 있습니까? 내가하려는 일과 같이 페이지 콘텐츠를 더 잘 얻을 수있는 방법을 소개하면 더 좋습니다.열린 탭에서 데이터를 가져올 수 없습니다.

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, 나는'alert' 대신'console.log'를 사용하도록 조언합니다. – fxm

+1

그런 문제를 디버깅하는 가장 좋은 방법은 브라우저에서 개발자 도구를 확인하는 것입니다. 특정 줄에 중단 점을 넣고 출력 내용을 볼 수 있습니다. – vatsal

답변

1

이 적어도 두 가지 문제가 있습니다

  1. 당신은 그것을 사용할 수 전에 정보를 얻기 위해 노력하고 (페이지가 실제로로드되기 전에 window.open 호출은 즉시 반환). 다른 사이트가 특별히 당신이 허용하지 않으면

  2. 당신은, 때문에 Same Origin Policy의 다른 기원에서 정보에 액세스 할 수 없습니다.

두 번째 문제는 다른 사이트의 도움 없이는 클라이언트 측에서만 수행 할 수없는 일을 거의 불가능하게 만듭니다. 대신 다른 사이트의 정보를 요청한 서버를 가지고 페이지에 보냅니다. (서버가 인 경우 반드시 일 필요는 없습니다. use YQL as a cross-domain proxy이 가능하고 다른 유사한 서비스가있을 수 있습니다.)

관련 문제