首页 > JavaScript | 使用window.open打开的新窗口的属性值是怎样的?

JavaScript | 使用window.open打开的新窗口的属性值是怎样的?

例如在<script></script>标签中间添加了如下代码

function test()
{
    var newWindow = window.open("https://.com", "a", "width = 600,height = 400");
    document.write(newWindow.location.href);
    document.write(newWindow.innerWidth);
}
test();

测试后的输出结果分别为 about:blank 与 0,但按我的理解是"https://.com"与600。不知道我的理解哪里出了问题,希望有人来讲解一下。

还有就是想问一下,如果真的是这样的话,那新窗口的URL这些属性应该怎么查询呢?

JS新手,希望得到大家的指导!


当你使用 window.open 打开一个页面的时候,window.open 返回了一个 Window 对象给了 newWindow
而尝试获取此对象的 location 属性时产生了 object DOMException 异常
具体的解释为:

Blocked a frame with origin "http://aaa.com" from accessing a cross-origin frame.(…)

其中aaa.com 是你源页面的域名
这是因为浏览器禁止不同域的页面相互访问,所以你在aaa.com的页面是没有办法获取到bbb.com的新页面的属性的
但是如果你在aaa.com的一个页面打开了aaa.com下的另一个页面,这时候你可以正常地获取到 location 属性

一点拙见,如有不妥请提出


如果你能拿到值,也就能设置,浏览器的安全性机制不允许跨域。除非你用jsop,代理设置等针对这种问题的解决方案。

【热门文章】
【热门文章】