如何在iframe导航时更改主URL?

时间:2014-02-26 15:06:50

标签: javascript browser browser-history html5-history

我试过这个,但用户需要点击两次后退按钮,一个用于更改后面的哈希值,另一个用于备份iframe内容:

(打字稿)

this.iframeApp.load(() => {
    if (this.sameDomain()) {
        window.location.hash = this.iframeApp[0].contentWindow.location.toString();
    } else {
        window.location.hash = this.iframeApp.prop('src');
    }
});

开始时:

var url = window.location.hash;
if (url.length > 1) {
    url = url.substring(1);
} else {
    url = this.settings.default;
}
this.openPage(url);

我认为历史Api无济于事。我需要一些适用于IE9的东西

1 个答案:

答案 0 :(得分:0)

试试这个:

this.iframeApp.load(() => {
    if (this.sameDomain()) {
        window.location.replace(window.location.toString() + '#' + this.iframeApp[0].contentWindow.location.toString());
    } else {
        window.location.replace(window.location.toString() + '#' + this.iframeApp.prop('src'));
    }
});

使用 replace()方法,您无法返回上一个网址,因此您的用户只需按一下后退按钮。