Javascript Href#页面上的链接要求在浏览器上按两次后退按钮
我在一个页面上有一些选项卡,有一个href可以访问页面的特定部分Javascript Href#页面上的链接要求在浏览器上按两次后退按钮,javascript,html,css,Javascript,Html,Css,我在一个页面上有一些选项卡,有一个href可以访问页面的特定部分 <a class="page_link" href="#tabA">Section1</a> 我需要关闭和打开选项卡,但没有弹出历史记录或替换它的内容,这是缺少的 const openPanel = (self, link, target) => { closeActiveTab(self); link.classList.add('activeTab'); link.setAttr
<a class="page_link" href="#tabA">Section1</a>
我需要关闭和打开选项卡,但没有弹出历史记录或替换它的内容,这是缺少的
const openPanel = (self, link, target) => {
closeActiveTab(self);
link.classList.add('activeTab');
link.setAttribute('aria-selected', 'true');
target.classList.add('activeTab');
target.setAttribute('aria-hidden', 'false');
};
const closeActiveTab = (el) => {
const tabs = el.getElementsByClassName('activeTab');
while (tabs.length) {
const selTab = tabs[0];
selTab.classList.remove('activeTab');
selTab.setAttribute('aria-selected', 'false');
}
};
最好的方法是尝试根本不改变url。您可以滚动到锚节或显示选项卡,而无需更改页面哈希。当然,如果不需要的话
如果需要在url中包含哈希,可以使用
history.replaceState()
而不是history.pushState()
。此方法将替换当前状态,要返回,您可以按一次“返回”按钮。您没有发布足够的信息让我们知道。也许您正在使用某种框架来更改选项卡?能否请您共享其余代码。根据给定的信息,我看不到我的侧边有问题您好,抱歉,我已经更新了它。如果您右键单击chrome中的后退箭头,您可以看到您是否已被重定向到同一位置两次,这可能是原因,值得检查。如果我只需浏览页面上的一个选项卡并单击后退,则此功能有效。如果我点击两个标签,然后返回,它不会返回到第一个标签,它会返回到我来自的页面?但进展:)如果您需要返回到上一个选项卡,为什么不简单地创建一些变量来存储访问的选项卡呢?如果有上一个选项卡,您可以创建pushState,如果没有已访问的选项卡,则可以创建replaceState。
const openPanel = (self, link, target) => {
closeActiveTab(self);
link.classList.add('activeTab');
link.setAttribute('aria-selected', 'true');
target.classList.add('activeTab');
target.setAttribute('aria-hidden', 'false');
};
const closeActiveTab = (el) => {
const tabs = el.getElementsByClassName('activeTab');
while (tabs.length) {
const selTab = tabs[0];
selTab.classList.remove('activeTab');
selTab.setAttribute('aria-selected', 'false');
}
};