为什么当click()触发重定向时,浏览器的标签历史不能保留?>

问题描述 投票:0回答:1

我发现click()方法触发重定向后,浏览器的标签历史记录未得到维护。这给我带来了不便,我非常希望就此问题获得StackOverflow建议。

详细说明,请考虑按以下方式编码的page1a.html:

<a href="page2.html">Redirect to Page 2</a>

[当用户在新标签页中打开page1a并单击“重定向到第2页”链接时,这将显示page2.html的内容-毫无意外。此外,正如预期的那样,浏览器的后退按钮将被启用,并在单击后重新显示page1。

但是上面的page1b.html是“动态”版本,其行为却大不相同:

<a id="redirect" href="page2.html"></a>
<script>
document.onload = function () {
document.getElementById("redirect").click();
};
</script>

在与上述相同的条件下运行page1b时,肯定会像以前一样显示page2,但是现在将启用浏览器的后退按钮not

。没有历史。似乎该选项卡中page1b的短暂存在从未发生过。

我可以隐约地感觉到为什么这可能是浏览器方面的明智行为,但这引起了我极大的悲伤,因为我的应用程序的Page2版本包含大量的动态交互,有时可能会诱使用户按下后退按钮。我依靠能够在应用程序的page1版本中“捕获”“后退”意图,以便能够适当地处理此问题。

我在网络上找不到任何引用,并且开始怀疑我是否会在我选择的浏览器Chrome中遇到错误。而且,我可以发誓,事情不会一直这样运作。但是在Opera中进行的快速测试似乎显示出相同的效果,因此我似乎误入歧途了。

如果错误确实是我的错误,我将非常感谢任何能告诉我我要去哪里的人。或者,如果确认这是设计行为,那么有人可以建议如何修改吗?

我发现click()方法触发重定向后,浏览器的标签历史记录未得到维护。这给我带来了不便,我非常想获得关于此问题的StackOverflow建议。 ...

javascript click browser-history
1个回答
0
投票
您尝试更改

document.getElementById("redirect").click();

© www.soinside.com 2019 - 2024. All rights reserved.