Javascript 由于iframe的导航,如何更改主URL?

Javascript 由于iframe的导航,如何更改主URL?,javascript,browser,browser-history,html5-history,Javascript,Browser,Browser History,Html5 History,我尝试了这一点,但用户需要单击“后退”按钮两次,一次更改“后退”哈希,另一次更改“后退”iframe内容: (打字稿) 一开始: var url = window.location.hash; if (url.length > 1) { url = url.substring(1); } else { url = this.settings.default; } this.openPage(url); 我认为历史Api不会有帮助。我需要一些能在IE9上工作的东西试试这个:

我尝试了这一点,但用户需要单击“后退”按钮两次,一次更改“后退”哈希,另一次更改“后退”iframe内容:

(打字稿)

一开始:

var url = window.location.hash;
if (url.length > 1) {
    url = url.substring(1);
} else {
    url = this.settings.default;
}
this.openPage(url);
我认为历史Api不会有帮助。我需要一些能在IE9上工作的东西试试这个:

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()方法,您无法返回到上一个url,因此您的用户只需按一次“上一步”按钮。

有效,但我需要在创建新的url之前删除哈希。var urlWithouthash=window.location.toString().replace(/#.*$/,“”);是的,忘了提一下:-)
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'));
    }
});