javascript - Firefox 源代码中定义或创建的 "window"对象在哪里

标签 javascript firefox firefox-addon window

我正在阅读 Firefox 源代码,我想知道如何创建一些全局函数。

我找不到创建窗口对象的位置或如何定义一些脚本访问的全局对象。

我想知道从哪里开始或者至少是在哪里定义和创建窗口对象,谢谢!

最佳答案

window 对象主要在 nsGlobalWindow.cpp 中定义.公共(public)方法/属性属于 nsIDOMWindow、nsIDOMJSWindow、nsIDOMEventTarget、nsIDOMStorageIndexedDB 和一些其他接口(interface)(查找 NS_INTERFACE_MAP_ENTRY 宏,但并非所有这些都引用公共(public)接口(interface))。

此外,作为任何 DOM 对象,它都可以具有 expando 属性(由脚本设置的属性)。在创建 DOM 包装器(nsWindowSH 类)时,会自动设置其中一些 expando 属性。特别是实现 nsIDOMGlobalPropertyInitializer 的组件可以在那个阶段设置属性,或者监听 content-document-global-created 的组件通知。

关于javascript - Firefox 源代码中定义或创建的 "window"对象在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580492/

相关文章:

javascript - PHP 变量到 Javascript 输出 php 代码

javascript - 我如何使用 javascript 将文本插入文本区域?

javascript - 如何运行占用大量 CPU 和内存的 HTML/javascript 程序? (Firefox/Chrome 崩溃)

javascript - Firefox 扩展和 XUL : get page source code

javascript - 如何在 Firefox 插件中仅运行一个代码实例?

javascript - 在 Android 浏览器中的文本后使用插入符号聚焦文本区域

javascript - 纯 JS : Get percentage of the horizontal position clicked within a div?

javascript - HTML5 Web Workers 在 Firefox 4 中工作,但在 Chrome 12.0.742.122 中不工作

javascript - d3.js 将图形下载为 svg 图像

html - 如何使用 AdBlock Plus 过滤器隐藏背景