如何找到打开 "Add new Bookmark" window 的 Firefox 代码?
How can I find Firefox code that opens "Add new Bookmark" window?
我正在编写一个应该添加新书签的 Firefox 插件。我正在考虑使用 Mozilla Firefox 浏览器中已经存在的一些功能。据我了解,Firefox 浏览器是用 XUL 编写的,代码是开源的。我如何找到执行任何特定操作的代码,例如在这种情况下,当我单击上下文菜单项 "Bookmark this link" 时,出现 window "New Bookmark",我如何找到打开它的代码window?
谢谢!
参见Viewing and searching Mozilla source code online - 目前有两种在线工具可以搜索Mozilla 的代码:DXR 和MXR。前者更新更先进,后者更简单成熟。使用其中任何一个:
- 搜索您要查找的标签:"Bookmark this link"
找到一个本地化文件(通常是.dtd
或.properties
),它将内部名称映射到人类可读的标签,在这种情况下:browser/locales/en-US/chrome/browser/browser.dtd :
ENTITY bookmarkThisLinkCmd.label "Bookmark This Link">
搜索您找到的内部名称:bookmarkThisLinkCmd.label
在 UI 中找到显示它的代码,通常是 .xul
或 .js*
,在本例中是 browser/base/content/browser-context.inc - 包含的文件通过预处理器在许多 XUL 文件中。 (请注意,DXR 还在 obj-x86_64-pc-linux-gnu
下向您显示了一堆结果 - 这些是构建期间生成的结果,而不是原始源代码,通常应忽略。)
<menuitem id="context-bookmarklink"
label="&bookmarkThisLinkCmd.label;"
accesskey="&bookmarkThisLinkCmd.accesskey;"
oncommand="gContextMenu.bookmarkLink();"/>
找到 gContextMenu
的定义:regexp:gContextMenu[^A-Za-z.] - 有一堆命中,它们都在做
gContextMenu = new nsContextMenu(this, event.shiftKey);
终于找到.bookmarkLink
的定义:browser/base/content/nsContextMenu.js#1690
我正在编写一个应该添加新书签的 Firefox 插件。我正在考虑使用 Mozilla Firefox 浏览器中已经存在的一些功能。据我了解,Firefox 浏览器是用 XUL 编写的,代码是开源的。我如何找到执行任何特定操作的代码,例如在这种情况下,当我单击上下文菜单项 "Bookmark this link" 时,出现 window "New Bookmark",我如何找到打开它的代码window?
谢谢!
参见Viewing and searching Mozilla source code online - 目前有两种在线工具可以搜索Mozilla 的代码:DXR 和MXR。前者更新更先进,后者更简单成熟。使用其中任何一个:
- 搜索您要查找的标签:"Bookmark this link"
找到一个本地化文件(通常是
.dtd
或.properties
),它将内部名称映射到人类可读的标签,在这种情况下:browser/locales/en-US/chrome/browser/browser.dtd :ENTITY bookmarkThisLinkCmd.label "Bookmark This Link">
搜索您找到的内部名称:bookmarkThisLinkCmd.label
在 UI 中找到显示它的代码,通常是
.xul
或.js*
,在本例中是 browser/base/content/browser-context.inc - 包含的文件通过预处理器在许多 XUL 文件中。 (请注意,DXR 还在obj-x86_64-pc-linux-gnu
下向您显示了一堆结果 - 这些是构建期间生成的结果,而不是原始源代码,通常应忽略。)<menuitem id="context-bookmarklink" label="&bookmarkThisLinkCmd.label;" accesskey="&bookmarkThisLinkCmd.accesskey;" oncommand="gContextMenu.bookmarkLink();"/>
找到
gContextMenu
的定义:regexp:gContextMenu[^A-Za-z.] - 有一堆命中,它们都在做gContextMenu = new nsContextMenu(this, event.shiftKey);
终于找到
.bookmarkLink
的定义:browser/base/content/nsContextMenu.js#1690