2014-03-03 29 views
0

我試圖創建一個窗口並動態更改其屬性。無法使用javascript更改窗口對象的屬性

但是當我加載一個網頁(例如:www.google.com):加載完美;並按下「紅色」按鈕,窗口向後移動並且不會改變其背景顏色。

這裏是我的代碼:

的JavaScript

var win1 =''; 
function create(){ 
    var url1=document.getElementById('myUrl').value; 
    win1=open(url1,'hello', 'width=500,height=500'); 
} 

function makeItRed(){ 
    win1.document.body.style.backgroundColor="red"; 
    win1.focus(); 
} 

function closeIt(){ 
    win1.close(); 
} 

HTML

<input type="text" id="myUrl"/> 
<button onClick="create()">Click</button> 
<button onClick="makeItRed()">Red</button> 
<button onClick="closeIt()">close</button> 
+0

[鏈接](http://stackoverflow.com/questions/2157180/onclick-open-window-and-specific-size)回到這個。 –

+0

是否有任何錯誤記錄在控制檯中?框架受到[相同來源策略](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript)的限制,這將阻止修改您不擁有的資源。 –

+0

謝謝@Atal,但我需要在加載後更改屬性。 :( – Charls

回答

3

出於安全考慮,您無法操縱第三方網站的內容沒有permissions from those sites or workarounds。見details about Same Origin Policysharing Cross Origin Resources

如果窗口內容是來自您自己的網站的另一個頁面,代碼應該工作。

+0

thanx。任何想法做我想要什麼??一旦我看到一個擴展注入腳本到頁面,並做到這一點。有沒有辦法通過擴展來訪問窗口? – Charls

+0

由於安全原因,許多網站不允許加載iframe – Charls

+0

進行跨域更改的'正確'方法需要權限或代碼另一臺服務器可以讓你做到這一點,而大多數網站實際上不會這樣做。另一種方法是使用代理,以便內容看起來像是來自服務器。您的實際目標是什麼? – guymid