【问题标题】:Keep the console script persistent in Google Chrome将控制台脚本保留在 Google Chrome 中
【发布时间】:2013-06-18 18:38:37
【问题描述】:

我有一个要在 Google Chrome 控制台中使用的脚本。但是这个脚本将重新加载页面。有点像这样:

setInterval(function(){location.reload();},3000);

问题是,一旦重新加载,脚本就会停止并且控制台会被清除。我尝试了“在导航中保留日志”选项:它保留了日志,但脚本在重新加载后不会重新启动。

我该怎么办?谢谢:)

【问题讨论】:

标签: javascript google-chrome console persistent


【解决方案1】:

尝试创建一个包含 iframe 的父 html 文档,该 iframe 的源是原始 html 页面。将 javascript 放在父 html 页面中并告诉它重新加载 iframe。

【讨论】:

  • 是的,它可以工作,但是......仅用于这个确切的目的:S 并不是所有的网站都接受 iframe。我正在寻找更一般的东西。这是否意味着无法在 chrome 中做到这一点?
  • 是的,我很确定你不能在 chrome 中做到这一点。我怀疑是否有任何其他浏览器会让你这样做。
  • 顺便说一句,另一个非常类似的解决方案是使用 window.open 打开一个新窗口/选项卡。父窗口将能够以同样的方式重新加载子框架。
【解决方案2】:

没有办法真正做到这一点。我发现唯一可能的方法是开发一个 Chrome 扩展并将你的脚本放在上面。每次加载目标页面时都会执行您的脚本,因此当您执行 location.refresh() 方法时,下次加载页面时您的脚本将再次执行,依此类推。如果您希望在页面加载之间保留一些数据,则可以使用 localStorage。


在这里找到更多信息https://developer.chrome.com/extensions/getstarted
如何通过扩展注入脚本?:https://developer.chrome.com/extensions/content_scripts

请记住,扩展的范围与页面的其余部分是隔离的,因此您不能直接从扩展访问页面本身中声明的 JS 变量或函数但是您可以与 DOM 交互。祝你好运

【讨论】:

    【解决方案3】:

    我正在使用一个很酷的 Chrome 扩展程序 Resource Override,它允许您在特定的 url 上注入脚本。所以你所要做的就是把你的url(每端带*),并创建一个注入HEAD的JS文件,每次都会运行它。不过,您在每一页上都从头开始,所以我不确定如何保存数据。也许在 cookie 中?

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 2020-05-26
      • 2011-07-28
      • 2012-09-04
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      相关资源
      最近更新 更多