重定向

时间:2016-02-17 16:09:42

标签: javascript same-origin-policy

我有一个在Chrome中运行且禁用了同源策略的Web应用程序(即--disable-web-security)。我使用window.open()创建一个新窗口,用于加载有时重定向的URI。如果没有重定向,我可以在document事件触发时使用onload属性读取窗口内托管的文档的内容。不幸的是,在发生重定向的情况下,onload似乎永远不会触发,而window.open()返回的窗口对象不再有用。

这是代码,让您了解正在发生的事情:

var win = window.open('http://somewhere');
win.onload = function() {
  doStuffWith(win.document.body);
  win.close();
};

即使在新窗口打开后立即发生重定向,我仍然可以保留有效的window句柄吗?

Per @ CBroe的建议我扩展了我的代码,看看如果我等一会儿,我是否能看到窗口的内容。在上面的代码之后,我附上了:

setTimeout(function() {
  console.log(win.location);
  doStuffWith(win.document.body);
}, 5000);

location报告为swappedout://(呵呵!?),文档正文为空。

1 个答案:

答案 0 :(得分:0)

问题是,如果重定位不完全是在大多数浏览器提供的点击事件弹出窗口阻止程序阻止请求之后,在您想要的某些功能成功时,打开带有按钮的模态并重新定位点击新按钮。这是唯一的方法。不太好,但它会做到这一点。

这也适用于有载。