【问题标题】:browser extension to replace JavaScript file on a live site for testing浏览器扩展来替换实时站点上的 JavaScript 文件以进行测试
【发布时间】:2010-06-22 12:39:39
【问题描述】:

我正在寻找一个浏览器扩展程序(Firefox、Chrome),允许替换实时网站上的 Javascript 文件以进行一些测试/黑客攻击。

基本上,它应该采用一个 URL 并加载另一个 URL(本地或 HTTP 开发服务器上)。

有什么想法吗?

【问题讨论】:

标签: javascript browser


【解决方案1】:

试试http://www.fiddler2.com/fiddler2/version.asp

它可以做到这一点以及更多。但它不是浏览器扩展。

【讨论】:

  • 404网页,无法修改ssl-html,没有https无法重定向
  • @ColBeseder - 我已编辑您的答案以指向正确的 URL。 Fiddler 正是 OP 正在寻找的东西
  • @PeterRader 通常 fiddler 允许您注入 ssl 连接,但显然证书将不再验证。 fiddler2.com/Fiddler/help/httpsdecryption.asp
  • 问题是替换浏览器中的 javascript 文件,而不是其他地方。
【解决方案2】:

我认为这是个人代理的任务。您可以在代理上嗅探流量并应用规则来修改请求/内容

【讨论】:

  • 我首先想到的是代理,但浏览器扩展会更容易使用。
【解决方案3】:

Opera browser 具有类似的功能:

  1. 查看页面源代码(Ctrl+U)。
  2. 进行一些更改。或者粘贴并替换整个文件。
  3. 按工具栏中的应用更改 (Ctrl+R)。

要编辑链接资源(如 javascript 或 CSS 文件),请使用以下方法:

  1. 在新标签页中打开链接的资源。
  2. 查看资源的“源代码” (Ctrl+U)。
  3. 进行一些更改。
  4. 按工具栏中的应用更改 (Ctrl+R)。
  5. 返回到带有网页和 realod (Ctrl+R) 的选项卡。

【讨论】:

  • 确实,这种方法不适用于新的 Opera。有一个内置的 Web 检查器,可用于实时编辑 HTML 和 CSS。不幸的是,不是 JS。我想应该可以使用控制台替换现有的 JS 函数。
  • 值得一提的是,Chrome 也通过开发者工具支持此功能。
【解决方案4】:

替代方案:

  • 使用 chrome,您可以动态更改代码(开发人员工具 -> 源选项卡)并保存(command + s)
  • 使用实际附加扩展的 LiveReload 应用程序(那种做你想要的)http://livereload.com/

这可能不是您问题的“确切”答案,但我几乎可以肯定其中一个会做您想做的事情。

【讨论】:

  • 除非站点已经上线,并且不能直接保存到源文件中。
【解决方案5】:

不确定这是否有帮助,但我刚刚遇到了一个名为 Resource Override 的 chrome 插件,听起来它做了类似的事情。我正在尝试其他人提到的提琴手,但我想我也会在某个时候尝试这个。 https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii?hl=en

【讨论】:

  • Resource Override 可能是 Linux 上最简单的解决方案。可能是 Windows 上的提琴手。
【解决方案6】:

您可以拦截和阻止浏览器中的请求。例如,在 Chrome 中,您可以使用 beforeload 事件检查它是否是 JS(event.target 是脚本标记或 event.url 以 .js 结尾)调用 event.preventDefault(),然后加载您自己的脚本。

我很确定在 FF 中也有类似的方法。

【讨论】:

    【解决方案7】:

    https everywhere which lets you define rules for url rewrites。这应该适用于所有请求,包括脚本请求。

    Tamper 数据可能会完成这项工作,但我不知道您可以将其设置为多么自动化/永久。

    还有一个扩展名为redirector。我没有测试那个。它可能仅适用于地址栏。

    更新:

    这很不幸。在这种情况下,代理可能是您唯一的方法。那么作为代理的 Firefox 扩展呢,例如 Foxyproxy

    【讨论】:

    • 重定向器不重定向页面内部引用。
    • HTTPSEverywhere 不会重定向页面内部引用
    • @PeterRader 看看 foxyproxy
    • 好吧,FoxyProxy 让我的 Firequery 和 Firebug 崩溃了。你能报告一个工作的 firefox/firebug/firequery/foxyproxy-versionconstelation 吗?
    【解决方案8】:

    ColBeseder 正确地提出了 Fiddler (http://www.fiddler2.com/fiddler2/version.asp) 作为您问题的解决方案。

    Fiddler 也完全能够处理和解密 HTTPS 流量 - 请参阅页面上的文档以了解如何配置它。

    要直接回答 OP 问题,您可以使用 Fiddler 中的自动回复功能来破解您的生产 JS 进行测试。

    在 Fiddler 中启用自动回复选项卡,确保选中不匹配请求的通过,输入要替换为模式的 JS 文件的 URL。从本地文件系统中选择响应文件,然后前往城镇!

    有关示例,请参阅http://yuiblog.com/blog/2008/06/27/fiddler/(文章底部最相关)。

    【讨论】:

      【解决方案9】:

      您可能应该考虑robohydra,因为它是专门为您的情况而开发的。他们还不支持 https,但他们愿意在未来包含它。

      【讨论】:

        【解决方案10】:

        免责声明:我是该软件的作者 :-)

        可能更适合您的用例的另一种方法是使用基于 RoboHydra 的开发代理。这里的想法是您希望将所有 Javascript 文件保留在您的机器中,并简单地将另一台服务器用作后端。它非常适合例如。不想在他们的机器上安装整个后端的前端开发人员。

        您可以在 http://robohydra.org/ 上查看文档、教程等,并在 http://dev.opera.com/articles/view/robohydra-a-new-testing-tool-for-client-server-interactions/ 上查看准确描述该用例的文章。

        但是,到目前为止,它还不能代理 HTTPS URL,但这应该是一个微不足道的改变,我打算很快做。

        【讨论】:

          【解决方案11】:

          Greasemonkey 怎么样? 这应该是您正在寻找的东西!

          【讨论】:

          • Greasemonkey 无法取代 Behave。
          • 当你替换函数时,看看:squakmt.com/replacing_javascript/index.htm。但你是对的,答案还不够正确。
          • 我无法替换
          • 是的,我明白了...Opera User Scripts 怎么样? Get 在任何脚本之前执行:User JavaScript is loaded and executed as if it were a part of the page that you visit. It is run immediately before the first script on the page,您可以阻止脚本执行:Controlling what scripts are allowed to run on a page, and what they are allowed to do
          • @MarvinEmilBrach:我会回答这个问题(我目前正在运行这样的设置),但 OP 要求为 FF/Chrome 提供扩展 - 并且可能需要一个 GUI。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-21
          • 1970-01-01
          • 2014-03-04
          • 1970-01-01
          • 2012-05-18
          • 2016-12-03
          • 1970-01-01
          相关资源
          最近更新 更多