页面不在chrome和FF中重定向,但在IE中

时间:2013-09-10 05:22:08

标签: javascript html dom

我在iframe中调用javascript来重定向到另一个网址。

var new_url  = "http://mysite.com/?language=en&origin="
                    + origin +"&destination="+ destination +                    "&Date=" + date;
    }
    //window.location.replace(new_url);
    window.top.location.href = new_url;
    //window.location.assign(new_url);

目的是在同一个窗口中打开iframe的页面,所以我正在使用

window.top.location.href = new_url;

它在IE中运行finr但不在chrome和FF中,但也没有给出任何错误

4 个答案:

答案 0 :(得分:3)

最新浏览器strict rules并且仅在以下情况下不允许更改:

  1. A和B的位置具有相同的来源,也就是说它们 具有相同的方案,主机和端口(HTTP,stackoverflow.com,80 例如),或
  2. B是顶级窗口,A是嵌套在B内某个深度的框架中的窗口(直接孩子,孩子的孩子等),或
  3. B是使用window.open打开的窗口,A可以更改打开B的窗口的位置(因此B是由A打开的弹出窗口,由A打开的弹出窗口或更深的位置),或者< / LI>
  4. B不是顶级窗口,而是其父窗口或其父窗口,或者在某些类似的父级窗口中,该窗口的位置和A是同源的

答案 1 :(得分:1)

只尝试这一点,不需要top。

window.location.href = new_url;

答案 2 :(得分:1)

是的,你可以为你的案例使用window.location.href。

但我想解释两者之间的区别。

window.location.href返回当前页面的位置。

top.location.href(window.top.location.href的别名)返回窗口层次结构中最顶层窗口的位置。如果窗口没有父窗口,则top是对自身的引用(换句话说,窗口=== window.top)。

top在处理框架和处理由其他页面打开的窗口时都很有用。例如,如果您有一个名为test.html的页面,其中包含以下脚本:

var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');

生成的警报将包含test.html的完整路径 - 而不是about:blank,这是window.location.href将返回的内容。

干杯!!!

答案 3 :(得分:1)

我刚刚添加了

window.event.returnValue = false;

在重定向之前,它在所有浏览器中都有效