2014-03-03 28 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