如何覆盖默认的浏览器功能

How to override default browser function

本文关键字:默认 浏览器 功能 覆盖 何覆盖      更新时间:2023-09-26

是否可以从firefox插件在全局级别覆盖此功能?

const windowMediator = CC["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
windowMediator.getMostRecentWindow("navigator:browser");

您可以使用https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/page-mod

pageMod.PageMod({
  include: "*",
  contentScriptWhen: 'start',
  contentScript: 'unsafeWindow.function=yourFunction;'
});

PageMod在每个页面上的js开始运行之前注入js (contentScriptWhen: 'start')。然后我们通过XRayWrapper重写窗口函数https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Accessing_the_DOM。