gpt4 book ai didi

url - html 4 浏览器 (IE) 中的 History.js PushState 错误地更改了 url

转载 作者:行者123 更新时间:2023-12-03 17:52:10 26 4
gpt4 key购买 nike

我使用 History.js 来推送一个 url,但在 IE 中它附加了页面名称。

如果我的原始网址是:
http://www.mydomain.com/Home.aspx

然后我执行以下操作:

var url = window.location.protocol + '//' + window.location.host + '/Home.aspx?id=2&pl=4';
History.pushState(null, null, url)

在 Chrome 中,我的网址变为:http://www.mydomain.com/Home.aspx?id=2&pl=4

在 IE 8 中,我的网址变为:http://www.mydomain.com/Home.aspx#Home.aspx?id=2&pl=4

如果我将 IE 8 url 粘贴到 chrom 中,我的代码将失败...

首先,正确的 html 4 url​​ 应该是什么样子,其次,我该如何解决?

最佳答案

我相信您没有正确推送状态,请尝试重新格式化您推送的网址,例如History.pushState({data: 'home'}, null, '/Home/').
或者您可能认为推送状态也会像您在那里进行查询一样向服务器发送请求?它不是哥们。

因此,不要指望通过粘贴你推送到其他浏览器的状态来工作。首先,因为其他浏览器没有关于您站点的历史记录,其次您需要使用 History 捕获 statechange 事件。

例如

History.Adapter.bind(window, 'statechange',
function() {
if (History.getState().data.page === 'home') {
//do what u would like with current state
}
);

关于url - html 4 浏览器 (IE) 中的 History.js PushState 错误地更改了 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com