2017-07-26 28 views
0

假設我通過將url傳遞給window.open()函數來打開一個網頁(www.facebook.com)。因爲我在window.open()函數中使用了「_blank」,所以我的窗口作爲新的瀏覽器打開。在window.open()窗口上運行Javascript

我想在新打開的窗口上運行自己的JavaScript。當我研究時,發現了一些我在源代碼中添加的解決方案,如下所示。但不幸的是,我的JavaScript沒有在新打開的窗口上工作。有人可以幫助我嗎?

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script> 
 

 
\t function myFunction() { 
 
\t \t var url = document.getElementById("myText").value 
 
\t \t var newWindow = window.open(url,'_blank','height=400,width=600,left=10,top=10,scrollbars=yes,menubar=yes,titlebar=yes') 
 
\t \t var newScript = newWindow.document.createElement('script'); 
 
\t \t //console.log(newScript); 
 
\t \t newScript.setAttribute('type','text/javascript'); 
 
\t \t newScript.setAttribute('src','C:/Users/30216/Desktop/jquery_edited_new1.js'); 
 
\t \t newWindow.document.getElementsByTagName("head")[0].appendChild(newScript); 
 
\t \t //console.log(newWindow); 
 
\t \t //newWindow.document.head.appendChild(newScript); 
 
\t \t 
 
} 
 
\t \t 
 
</script> 
 
</head> 
 
<body> 
 
<table align = "center"> 
 
<frame> 
 
<tr> 
 
\t <td class="url">Enter the URL:</td> 
 
\t <td> 
 
\t \t <input type="text" id="myText"></input> 
 
\t </td> 
 
</tr> 
 
<tr> 
 
\t <td> 
 
\t \t <button id="browser_open" onclick = "myFunction()">Submit</button> 
 
\t </td> 
 
</tr> 
 
</frame> 
 

 
</body> 
 
</html> 
 

 

+0

你不能那樣做。清除跨越原點違例(請參閱https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)。如果你認爲你只是簡單地打開你的網站的Facebook登錄頁面,並捕獲用戶的登錄信息,然後哈哈,忘掉它。 ;) – smajl

+0

如果你想在你選擇的網頁上運行你自己的JavaScript,那麼TamperMonkey/GreaseMonkey插件就是你想要的。 – Phylogenesis

回答

1

您可以根據Same-Origin-Policy只能訪問文件。

如果您打開Facebook等另一個網頁,並且打開facebook.com的網頁不使用相同的域,協議和端口,它將無法訪問該頁面的文檔。

想象一下,如果你沒有這個政策,可以做什麼。例如。你將能夠打開Facebook,祕密安裝密鑰記錄器並告訴用戶登錄。

+0

如果我正在web服務器上運行我的HTML,就可以實現這一點,就像這個stackoverflow鏈接中提到的一樣:https://stackoverflow.com/questions/29983786/blocked-a-frame-of-origin-null-from-accessing-a -cross-origin-frame-chrome:@idmean – Karthikeyan

+0

@Karthikeyan這很簡單:如果你的網站與你打開的窗口具有相同的域名,端口和協議(即它是相同的網站),否則它不起作用。你所關聯的答案僅僅涉及發展。這是出於安全原因,有(應該)沒有辦法規避這一點。 – idmean

相關問題