我在iframe
内运行了一个AngularJS应用。该应用程序提供了自己的导航(使用ui-router
),周围的页面除了我的应用程序之外几乎不包含任何内容。
因此我希望能够使用浏览器后退/前进按钮来浏览我的应用。
当我向后/向前导航或刷新页面时,这仅影响父页面(完全重新加载)。这是有道理的,因为我的iframe中的状态转换不会影响URL,因此不会在浏览器历史记录中创建新条目。
奇怪的是,在我搜索解决方案时,我发现了几个关于如何阻止 iframe搞乱/干扰浏览器历史记录的问题。因此我假设在状态变化上生成浏览器历史记录是某种默认行为。
我玩了
$locationProvider.html5Mode
和我的状态对象中的网址,但似乎没有任何影响浏览器历史记录。
我假设一旦我解决了这个问题,下一步就是阻止浏览器导航的完整页面重新加载,而是在我的应用程序中调用$state
- 转换。我似乎需要利用iframes
popstate
事件,但尚未找到任何文档或良好示例。你能指点我这方面的好方向吗?
如何委派(后退/前进 - )浏览器导航到在iframe
内运行的Angular-App?