Javascript 强制浏览器将按钮单击视为历史遍历事件时出现问题
我正在建立一个网站,通过一系列方向按钮导航。右键和左键单击可在与一个项目关联的不同图像之间移动。上下单击在项目之间移动 我试图做的是确保当用户点击向上或向下(即在项目之间)时,这被注册为历史遍历事件,并且新项目的新条目在浏览器的历史记录中可见 我的代码在单击导航按钮时设置一个事件,对页面内容进行必要的更改,然后我尝试通过调用此函数将新页面推送到历史对象(有关背景信息,请参阅和): 在页面加载新内容后,我通过执行以下操作,在其他地方为该函数提供参数:Javascript 强制浏览器将按钮单击视为历史遍历事件时出现问题,javascript,browser-history,Javascript,Browser History,我正在建立一个网站,通过一系列方向按钮导航。右键和左键单击可在与一个项目关联的不同图像之间移动。上下单击在项目之间移动 我试图做的是确保当用户点击向上或向下(即在项目之间)时,这被注册为历史遍历事件,并且新项目的新条目在浏览器的历史记录中可见 我的代码在单击导航按钮时设置一个事件,对页面内容进行必要的更改,然后我尝试通过调用此函数将新页面推送到历史对象(有关背景信息,请参阅和): 在页面加载新内容后,我通过执行以下操作,在其他地方为该函数提供参数: html = document.getElem
html = document.getElementsByClassName('main-frame')[0].innerHTML
pageTitle = 'http://mysite/'+newpath; // new path specifieds the new item.
this.pushToHistory( url, pageTitle, html);
现在我遇到的问题是,所有这些的结果是,在Chrome和Firefox中,历史记录都以一种基本上正确的方式更新:历史记录的状态对象中的url是正确的,这就是内容。因此,如果我单击其中一个历史事件,就会检索到正确的页面
但是,历史记录项目列表中显示的页面标题不正确。它始终是站点初始加载时加载的页面标题。因此,如果我加载mysite/a-project,页面的标题是“我的站点-一个项目”,它总是显示在框中。我还检查了代码以确保pageTitle对象是正确的,因此在调用history.pushState()
之前转储pageTitle
,将显示正确的标题
有什么想法吗 我发现了这个问题。我需要先设置
document.title
。这意味着在调用history.pushState()
之前,我需要执行以下操作:
document.title = theNewTitle;
document.title = theNewTitle;