Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Javascript访问父窗口(当子窗口的URL位于另一台服务器上时)_Javascript - Fatal编程技术网

通过Javascript访问父窗口(当子窗口的URL位于另一台服务器上时)

通过Javascript访问父窗口(当子窗口的URL位于另一台服务器上时),javascript,Javascript,我知道ajax不能跨服务器运行 所以我试图访问我的父窗口,比如改变它的位置。因此,当子页面位于同一台服务器上时,它可以工作,但当它位于另一台服务器上时,它不能工作 例如: parenttest.html: 点击这里 childtest.html opener.document.location=”http://www.cnn.com"; 因此,当childtest位于同一台服务器上时,这一点可以实现,但当它位于另一台服务器上时,则无法实现。为什么我甚至不能进入弹出窗口的打开窗口 谢谢。我不会让它

我知道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:谢谢你修复了这些评论