繁体   English   中英

将窗口历史记录标题替换为Javascript

[英]Replace Window History title with Javascript

我在解决方案中使用了history.replaceState(null, "historyTitle", "url")来将页面的URL替换为更易理解的内容。 我面临的问题是,尽管它替换了URL,并且在浏览器中导航回到了正确的页面,但在chrome中似乎忽略了"historyTitle"部分-而是将整个URL添加为页面中的位置窗口历史记录,而不仅仅是使用标题。 如何克服此问题,以便在浏览器历史记录中针对我所到达的特定页面显示“ historyTitle”?

小编辑:我将此与我在MVC中设置的自定义路由结合使用,因此,即使更改标题,然后刷新页面,MVC路由器仍会导航到正确的页面。 这只是chrome中的窗口历史记录(ctrl + H)中的标题,无法正确更新标题并转储该记录中的整个页面URL。

确实这是一个错误,尽管现在已经有两年了。 问题在于一些不清楚的规范和涉及document.title和后退/前进的复杂性。

请参阅WebkitMozilla上的错误参考。 Opera在介绍History API时也表示,它没有使用title参数,并且可能仍然没有使用。

目前,Opera的实现中未使用pushState和replaceState的第二个参数(历史条目的标题),但可能只有一天。 潜在解决方案

我看到的唯一方法是更改​​title元素并改用pushState:

 document.getElementsByTagName('title')[0].innerHTML = 'bar'; window.history.pushState( {} , 'bar', '/bar' ); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM