如何访问用window.open打开的窗口的文档对象?

时间:2016-07-28 13:23:37

标签: javascript html wordpress dom browser

我通过javascript在新标签页中打开一个网站,方法是在浏览器控制台中编写以下代码:

var win = window.open("http://staging.redefinewebs.in/wildgoose-const/wp-admin/post-new.php", "mywin", '');

现在我想在新打开的标签中的字段中添加文字。但为此,我需要访问win.document。当我在控制台中编写win.document时,出现以下错误:

Error: Permission denied to access property "document"

如果我在新标签页中打开其他网站,则不会显示此错误。所以,

如何使用window.open?

访问在新选项卡中打开的窗口的文档对象

2 个答案:

答案 0 :(得分:3)

  

如何使用window.open?

访问在新选项卡中打开的窗口的文档对象

如果窗口正在打开来自不同来源的文档,则不要这样做。由于Same Origin Policy,浏览器拒绝跨源访问。从问题中的错误来看,这似乎就是这种情况。

如果窗口包含来自同一来源的文档,您可以在显示时访问该文档;但请注意,在您致电window.open后,它可能仍会立即加载,您可能需要等待它完成,可能是DOMContentLoaded事件。

答案 1 :(得分:2)

如果违反了同源策略,则无法访问子窗口的DOM。

只有满足以下三个条件时,才能访问子窗口的DOM。

  • 两个窗口都有相同的协议(http / https)
  • 两个窗口都有相同的主机(google.com和news.google.com不同)
  • 两个窗口都有相同的端口(google.com:80和google.com:443不同)