为什么html5全屏无法使用window.history.pushState?

时间:2013-12-30 15:07:39

标签: javascript html html5 fullscreen

我正在使用html5全屏api来制作div全屏。根据使用window.history.pushState的用户互动/导航网址更改,但只要我更改网址, 页面就会退出全屏模式。

它发生在所有网站上,不仅仅是我的应用程序。

重现的步骤:

  1. 转到http://davidwalsh.name/demo/fullscreen.php(一个不错的演示)
  2. 然后点击Launch fullscreen
  3. 现在使用chrome / ff控制台尝试使用window.history.pushState
  4. 更改网址
  5. 使用以下代码window.history.pushState(window.location.origin, "show", '/myNewPath');
  6. 现在您会注意到URL更改但退出了全屏模式。我在这里做错了吗?如果你们需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

我也注意到了这个问题,基本上任何pushState都会让你退出全屏模式。我已经关注了一段时间,根据这个帖子应该很快就会出现修复:

https://code.google.com/p/chromium/issues/detail?id=138324

似乎他们最终修改了它,所以这两个最终应该很好地结合在一起。

答案 1 :(得分:0)

您必须注意浏览器刷新,因此必须退出全屏模式。

如果您希望保持全屏模式,则必须保持同一页面,并且不要退出/刷新页面,并使用AJAX管理导航和链接并在同一页面中加载内容。