将父窗口重定向为子窗口关闭,而不向子窗口添加代码
Redirect parent as child window closes, without adding code to child
好吧,我正在一个网站上工作,显示第三方开发的课程,所以我不能在实际弹出窗口中改变任何东西,重定向调用必须来自父窗口。父、子和redirectLocation都在同一台服务器上,所以这不应该是一个问题。这是我想要工作的代码。
var new_window = window.open('courseAddress.php')
new_window.onbeforeunload = function(){
popupClosing();
}
function popupClosing(){
window.location ="redirectLocation.php";
alert('The popup has closed!');
return false;
};
警告正在触发,但是父窗口似乎没有刷新。如果我把window.location ="redirectLocation.php";
外面的。onbeforeunload刷新工作得很好。
我肯定我错过了一些简单的东西。提前谢谢你。我在这里读过其他类似的问题,但是他们能够使用孩子的window.opener.loaction
,不幸的是我无法做到。
我已经找到了一种有效的方法,但它真的很讨厌。我只是让父窗口不断检查子窗口是否在那里。下面是它的代码:http://jsfiddle.net/ex9e7uLq/
感谢折衷主义者在这个问题上也坚持支持我!
我已经在Chrome, Firefox和IE上测试过了,都没有问题。下面是一个JSBin的例子。
var win = window.open("http://www.google.com");
var winClosed = setInterval(function () {
if (win.closed) {
clearInterval(winClosed);
location.assign("http://www.bing.com/");
}
}, 250);
从你的问题,我知道你想附加一个事件处理程序到子窗口。然而,在测试不同的方法时,我遇到了大量的问题。通常,Internet Explorer将无法从父窗口注册子窗口中的任何事件。Firefox和Chrome会在子窗口启动时就像事件启动一样(不管类型如何)。
我读过其他SO问题的答案,显然是通过做你想做的事情来工作的,但我个人无法让他们工作。祝你好运!
try this:
var new_window = window.open('courseAddress.php');
var intr = setInterval(function(){
console.log(new_window.closed);
if(new_window.closed){
clearInterval(intr);
window.location='http://www.google.com';
}
}, 200);
相关文章:
- 在窗口中添加滚动条
- 在highcharts.js中向点弹出窗口动态添加文本
- 如何将弹出窗口添加到此柔性滑块
- 如何从父窗口添加弹出窗口的某些属性
- 如何在加载时将加载窗口添加到 sencha 中的图表
- 为剑道UI窗口添加全局功能
- 如何向脚本窗口添加滚动速度
- 使用 extjs4 在窗口添加下拉菜单
- 动态窗口.添加元素后的位置 动态.
- 加载页面时打开窗口添加chrome扩展
- 如何在没有标记的情况下将信息窗口添加到谷歌地图中
- 将弹出窗口添加到谷歌地图中的多个标记中
- 将父窗口重定向为子窗口关闭,而不向子窗口添加代码
- jQuery弹出窗口添加关闭功能,点击任何地方关闭弹出窗口
- 如何仅在窗体更改时向窗口添加事件侦听器
- 如何在向窗口添加新数据时重新加载jQuery插件.没有提供reload()方法
- 向KML数据的信息窗口添加自定义html
- Bootstrap弹出窗口添加关闭选项提交表单也
- 将jQuery/AJAX脚本附加到使用窗口添加的元素上.setInterval(, 1000*60)方法
- 向弹出窗口添加动画