如何使iframe无法保存到Chrome中的历史记录?

菲尔·巴雷西

我正在尝试开发一个Chrome扩展程序,该程序会将Angular应用程序注入用户的浏览器窗口中,以制作交互式边栏。通过内容脚本向页面添加iframe并将该框架的源设置为扩展目录中的html文件,我基本上能够实现100%的目标。

不幸的是,由于Angular应用程序具有多个路由(允许用户登录并查看许多不同类型的信息),因此我发现它正按预期使用其后退/前进按钮来干扰用户。随着iframe的来源由于哈希值的更改而更改,它会将新条目保存到历史记录中。

我似乎无法为此找到解决方法;有什么聪明的方法可以使Angular不生成历史记录条目,或者实现不使用iframe便无法保存到历史记录的边栏的创建,或者使iframe无法保存到历史记录?

菲尔·巴雷西

最终,我一直试图编写一个chrome扩展程序,将一个有角度的应用程序嵌入到iframe中,但是发现所有哈希值更改都会干扰Chrome浏览器的历史记录,因为iframe源由于路由更改而不断变化。

虽然我不能肯定地说是否使用ui-router而不是有角度的路由器可以让我规避我的问题(虽然ui-router似乎使用状态,并且不一定需要更改url,但我可能错了),但我已经确定根本原因是iframe来源的改变,并且只有一种方法可以使iframe根本不记录在历史记录中:利用window.location.replace函数而不是直接更改位置。

为了确保我的iframe完全不干扰Chrome的历史记录,我们采取了以下步骤:

  1. 附加到当前现有文档之前,iframe的src设置为“#”
  2. 将iframe附加到文档
  3. 直接访问iframe的内容窗口,以便使用框架的location.replace函数,以便在不保存历史记录的情况下更新位置:
    1. $("#myIframe").get(0).contentWindow.location.replace(myUrl);
  4. iframe中用于更改url的所有代码都是通过使用 location.replace(url)
  5. 角度内部的重定向按以下方式处理:$location.path(newPath).replace()因此角度使用相同的策略。

更好的解决方案是弄清楚$location.replace()默认情况下如何一直使用,这是我现在尝试实现的。因此,从本质上讲,这全部归结为:location.replace将允许您进行iframe的源更改,而不保存到历史记录

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使iframe无法保存到Chrome中的历史记录?

来自分类Dev

如何防止zshell中的命令保存到历史记录中?

来自分类Dev

如何将$ PWD的重击历史记录保存到$ PWD / .history中

来自分类Dev

如何防止或避免将交互功能输入保存到minibuffer历史记录中?

来自分类Dev

如何将$ PWD的重击历史记录保存到$ PWD / .history中

来自分类Dev

Git:如何将分支的历史记录保存到单个文件中

来自分类Dev

如何在Android中读取Chrome历史记录

来自分类Dev

如何查看Chrome历史记录中的完整URL?

来自分类Dev

将输入历史记录从utop保存到文件

来自分类Dev

取消当前命令但保存到历史记录

来自分类Dev

从保存到历史记录中排除特定命令

来自分类Dev

将命令保存到历史记录中,而无需在bash中执行

来自分类Dev

$ pwd在特定文件夹下时,是否不将命令保存到历史记录中?

来自分类Dev

Zsh不会将var保存到历史记录中吗?

来自分类Dev

Chrome仅保存7天的历史记录

来自分类Dev

如何使用bash历史记录使用历史记录中的参数运行命令?

来自分类Dev

如何无限期地在Chrome中记录浏览历史记录?

来自分类Dev

如何手动保存终端历史记录?

来自分类Dev

如何配置GHCi保存的命令历史记录数量?

来自分类Dev

如何禁用python历史记录保存?

来自分类Dev

如何手动保存终端历史记录?

来自分类Dev

如何保存zsh终端之间的历史记录?

来自分类Dev

Firefox-如何保存历史记录?

来自分类Dev

Chrome-更新历史记录中的域

来自分类Dev

如何创建存储过程以在Postgres中更新之前保存特定列的历史记录

来自分类Dev

如何保存emacs中的shell历史记录并在终端中使用它?

来自分类Dev

如何在MATLAB中将命令历史记录保存在文本文件中

来自分类Dev

无法从React组件中的props访问历史记录?

来自分类Dev

无法从Git历史记录中删除目录

Related 相关文章

  1. 1

    如何使iframe无法保存到Chrome中的历史记录?

  2. 2

    如何防止zshell中的命令保存到历史记录中?

  3. 3

    如何将$ PWD的重击历史记录保存到$ PWD / .history中

  4. 4

    如何防止或避免将交互功能输入保存到minibuffer历史记录中?

  5. 5

    如何将$ PWD的重击历史记录保存到$ PWD / .history中

  6. 6

    Git:如何将分支的历史记录保存到单个文件中

  7. 7

    如何在Android中读取Chrome历史记录

  8. 8

    如何查看Chrome历史记录中的完整URL?

  9. 9

    将输入历史记录从utop保存到文件

  10. 10

    取消当前命令但保存到历史记录

  11. 11

    从保存到历史记录中排除特定命令

  12. 12

    将命令保存到历史记录中,而无需在bash中执行

  13. 13

    $ pwd在特定文件夹下时,是否不将命令保存到历史记录中?

  14. 14

    Zsh不会将var保存到历史记录中吗?

  15. 15

    Chrome仅保存7天的历史记录

  16. 16

    如何使用bash历史记录使用历史记录中的参数运行命令?

  17. 17

    如何无限期地在Chrome中记录浏览历史记录?

  18. 18

    如何手动保存终端历史记录?

  19. 19

    如何配置GHCi保存的命令历史记录数量?

  20. 20

    如何禁用python历史记录保存?

  21. 21

    如何手动保存终端历史记录?

  22. 22

    如何保存zsh终端之间的历史记录?

  23. 23

    Firefox-如何保存历史记录?

  24. 24

    Chrome-更新历史记录中的域

  25. 25

    如何创建存储过程以在Postgres中更新之前保存特定列的历史记录

  26. 26

    如何保存emacs中的shell历史记录并在终端中使用它?

  27. 27

    如何在MATLAB中将命令历史记录保存在文本文件中

  28. 28

    无法从React组件中的props访问历史记录?

  29. 29

    无法从Git历史记录中删除目录

热门标签

归档