通过Javascript访问父窗口(当子窗口的URL位于另一台服务器上时)
我知道ajax不能跨服务器运行 所以我试图访问我的父窗口,比如改变它的位置。因此,当子页面位于同一台服务器上时,它可以工作,但当它位于另一台服务器上时,它不能工作 例如: parenttest.html: 点击这里 childtest.html opener.document.location=”http://www.cnn.com"; 因此,当childtest位于同一台服务器上时,这一点可以实现,但当它位于另一台服务器上时,则无法实现。为什么我甚至不能进入弹出窗口的打开窗口通过Javascript访问父窗口(当子窗口的URL位于另一台服务器上时),javascript,Javascript,我知道ajax不能跨服务器运行 所以我试图访问我的父窗口,比如改变它的位置。因此,当子页面位于同一台服务器上时,它可以工作,但当它位于另一台服务器上时,它不能工作 例如: parenttest.html: 点击这里 childtest.html opener.document.location=”http://www.cnn.com"; 因此,当childtest位于同一台服务器上时,这一点可以实现,但当它位于另一台服务器上时,则无法实现。为什么我甚至不能进入弹出窗口的打开窗口 谢谢。我不会让它
谢谢。我不会让它发生。我找不到一种方法来运行您提到的代码(服务器a在服务器b上打开一个弹出窗口,然后让弹出窗口更改打开窗口的位置)。然而,我用iframe做了同样的尝试。加载google并试图更改它cnn.com。当我使用
window.frames.myframe.location = 'http://www.cnn.com'
我试的时候没用
window.frames.myframe.document.location = 'http://www.cnn.com'
尝试从语句中删除文档。也许您可以从其他域对窗口执行一些操作。我知道你至少可以测试一下窗户是否关上了
试一试:
新测试
我从wikipedia.com开始,在URL框中键入:
javascript: open('http://www.google.com');void(0)
在打开的窗口中,我在URL框中键入了以下语句
javascript: alert(opener.closed) //false, it works
javascript: alert(opener.location.href) //undefined, access denied
javascript: opener.document.location = 'http://www.google.com'; void(0); // Didn't change the location, access denied
javascript: opener.location = 'http://www.google.com'; void(0); // YES, it changed
我想这几乎证实了我的理论,但我只在chrome上进行了测试。好的,它没有正确显示parenttest.html。在parenttest.html中,我只是在点击这里,点击target=“\u blank”查看如何格式化代码,以避免删除html标记。如果你想访问opener,它不能用链接打开,应该用窗户打开。打开(我想)对不起。我对这个网站不太熟悉。我想我找到了一个方法。我只是要告诉其他网站的人在我的网站上加入一个iframe。这是我让它工作的唯一方法。谢谢。你好,克里斯蒂娜,需要一些时间来适应。每个问题都应该有益于世界上的任何人,而不仅仅是问问题的人,这就是为什么它比大多数论坛都好。你能做的最好的事情就是从epascarello的答案中删除你的评论,添加一条你在这里尝试过的评论。关于你的问题:我让它与一个弹出窗口一起工作,就像我发布的第二个示例一样。是否确保使用window.open()打开弹出窗口?如果我从语句中删除文档,它会出于某种原因弹出一个新窗口,而不是访问父窗口。我想使用iframe,这样我就可以留在同一台服务器上,但我使用的是adobecaptivate,它在iframe中似乎不太好用。这就是为什么我必须在另一台服务器上弹出一个新窗口的原因。@Christina:谢谢你修复了这些评论