将网站中的 javascript 链接转换为常规 HTML 链接?

将网站中的 javascript 链接转换为常规 HTML 链接?

有些网站喜欢使用 javascript 链接代替常规 HTML 链接,导致无法在新浏览器选项卡中打开此类链接,例如“javascript:OpenLink(908)”而不是“site.com/links/908”。

有没有办法使用 FireFox 插件或 GreaseMonkey 脚本随时重写这些网站?

谢谢!

答案1

一般来说不是。

如果它们执行 JavaScript,那么它们就不是严格意义上的链接。它们会导致浏览器评估一些代码,而这些代码某物然后请求浏览器重定向您。

理论上,你可以做一个扩展来:

  1. 等到页面加载完成。
  2. 对于每个“JS 链接”,都假装它被点击了
  3. 拦截重定向
  4. 根据重定向的目标,将原有的“JS链接”重写为真实链接

但这种方法也存在一些问题:

  • 据我所知,浏览器扩展 API(尤其是用户脚本 API)不会让你拦截重定向
  • 点击链接可能会对你正在查看的页面产生不良影响,例如,它可能会禁用某些表单按钮
  • 没有简单的方法可以区分“JS 链接”和旨在在网站上执行某些操作但不会将你重定向到任何地方的链接(单页应用程序的典型特征)
  • 这一过程可能部分取决于停机问题一般来说,这是无法解决的。

有一些扩展可以针对特定网站执行此操作(例如FB 纯度可以“修复” Facebook 上的链接),但没有一种通用的方法可以在任何地方使用

相关内容