2014-11-04 73 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 2014-11-04 09:18:22

+1

調試此類問題的最佳方法是檢查瀏覽器上的開發人員工具。你可以在特定的行上放置一個斷點,看看輸出是什麼。 – vatsal 2014-11-04 09:53:38

回答

1

至少有兩個問題有:

  1. 你正在試圖獲得的信息是可用之前(在window.open調用立即返回,實際加載的頁面之前)。

  2. 由於Same Origin Policy,您不能訪問其他來源的信息,除非其他網站明確允許您。

第二個問題非常多,使得您嘗試做的事情無法在沒有其他站點幫助的情況下完全做到客戶端。相反,您必須有一臺服務器來請求來自其他站點的信息,然後將其發送到您的頁面。 (這並不一定是服務器;它可能use YQL as a cross-domain proxy並可能有其他類似的服務在那裏。)