【问题标题】:How can I patch client side javascript on a website after loading it in Opera or Firefox?在 Opera 或 Firefox 中加载网站后,如何在网站上修补客户端 javascript?
【发布时间】:2009-01-05 16:02:29
【问题描述】:

我必须使用一个特定的网站来工作,这绝对是令人发指的,并且被所有必须使用它的人所鄙视。特别是,该站点的 Javascript 从根本上被破坏并且只能在 IE 中运行,这几乎使它成为我必须在首选浏览器之外使用的唯一站点。

所以,对于这个问题。如果我可以在加载网站后以“做正确的事”的方式“patch”javascript,那么我可以使用没有IE的网站。

(只是为了删掉一些多余的答案:我已经尝试将两个浏览器都屏蔽为 IE,这没有效果,因为问题出在 javascript,而不是服务器上的浏览器检测。 )

我更喜欢 Opera 的解决方案,尽管我不反对 Firefox 的答案。此外,我宁愿不必通过代理查看该网站,但我会接受这样的答案。

【问题讨论】:

  • 哦,猜谜游戏!我喜欢 - 我叫“MSDN”
  • 不。 =D 很好的尝试。这是一个用于输入时间卡的网站。
  • 哈!我也必须为我们的时间表应用程序编写 GM 脚本。
  • 我认为问题在于选择 Timesheet 网站的人不是使用的人。而且,那些选择的人并不知道存在多个浏览器。 L 用户... =D

标签: javascript firefox opera


【解决方案1】:

对于 Opera,您需要 User JavaScript。类似于 Greasemonkey,但内置于 Opera。专为您所处的那种情况而设计:修复在 Opera 中损坏的网站...

【讨论】:

  • +1 看起来就是这样。我会试一试,如果它解决了我的问题,我会回来进行您的绿色检查。谢谢!
  • 检查 这正是我需要的。用户 javascripts 在页面的 Javascripts 之前执行。此外,Opera 具有重新定义不良脚本使用的元素的语义,以允许它们正常运行。感谢@Shog9 的回答!
  • 嗨 Aaron,刚刚回答了一个非常古老的问题,建议如果它是其他人可能也想在 Opera 中使用的站点/应用程序,您可以通过打包和提交您的用户 JS 来帮助其他人一个扩展,甚至更好(如果站点/应用程序很受欢迎) - 将您的用户 JS 提交给 Opera 并让他们为所有用户全局运行它:) 请参阅 my.opera.com/operaqa/blog/2008/09/17/…
  • @hallvors 我承认我从来没有真正抽出时间来编写 GM 脚本,因为我们在那之后不久就更改了 Timecard 网站(此后已经更改了两次!)
【解决方案2】:

对于 Firefox,您可以使用 Greasemonkey 插件来执行此操作。

【讨论】:

    【解决方案3】:

    您可以使用 Firefox 的 Greasemonkey 插件来执行此操作。它可以让你编写 javascript 在他们的页面中运行,并且可能使用它在运行时做一个“补丁”。我以前从未编写过greasemonkey 脚本,所以我不知道让某些东西工作起来有多容易,但它可能值得一看。

    【讨论】:

      【解决方案4】:

      Greasemonkey 正是您想要的。我已经广泛使用它入侵了一些网站,www.greasespot.net 有很多很好的例子。虽然这个页面是关于 Opera 的,但它有一些很好的例子也适用于 firefox 中的Greasemonkey。我还注意到Greasemonkey wikipedia article 也包含有关在其他浏览器中使用 Greasemonkey 或等效项的信息。

      【讨论】:

        【解决方案5】:

        您还可以使用代理(我很久以前使用 Proxomitron,有更多现代等价物)在页面到达浏览器之前动态更改页面......因此您可以删除所有原始 JavaScript,并添加您的拥有,通过这种方式,或使用 Greasemonkey 或用户脚本。

        【讨论】:

          【解决方案6】:

          我不确定 GreaseMonkey 是否适合修补。 GM 脚本在页面加载后运行,并且所有本机脚本都已运行,因此任何要破坏的东西都已经破坏了。

          【讨论】:

          • 不过,它不一定会永久损坏。他可以修补一些函数,引入一些新函数,然后重新运行初始化。
          • 特别是,它会根据用户输入运行的脚本中断,因此在加载后但在输入之前进行修补应该能够修复站点。
          • 更多信息:对于 Opera,用户 Javascript 在站点的 javascript 之前运行,GreaseMonkey 脚本在之后运行。对于这个站点,我实际上确实需要在站点 javascript 之前进行修补。 (愚蠢的 html.document.all 疯狂...)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多