tempermonkey.d.ts | 油猴函数类型
/* unsafeWindow 对象提供对页面 javascript 函数和变量的完全访问。 * */ declare var unsafeWindow: Window; /* 获取有关脚本和 TM 的一些信息。 * */ declare var GM_info: { version: string, scriptWillUpdate: boolean, scriptHandler: "Tampermonkey", scriptUpdateURL?: string, scriptSource: string, scriptMetaStr?: string, isIncognito: boolean, downloadMode: "native" | "disabled" | "browser", script: { author?: string, description?: string, excludes: string[], homepage?: string, icon?: string, icon64?: string, includes?: string[], lastModified: number, matches: string[], name: string, namespace?: string, position: number, "run-at": string, resources: string[], unwrap: boolean, version: string, options: { awareOfChrome: boolean, run_at: string, noframes?: boolean, compat_arrayLeft: boolean, compat_foreach: boolean, compat_forvarin: boolean, compat_metadata: boolean, compat_uW_gmonkey: boolean, override: { orig_excludes: string[], orig_includes: string[], use_includes: string[], use_excludes: string[], [key: string]: any, }, [key: string]: any, }, [key: string]: any, }, [key: string]: any, }; /* 将给定的样式添加到文档并返回注入的样式元素。 * */ declare function GM_addStyle(css: string): void; /* 创建一个由“tag_name”指定的 HTML 元素并应用所有给定的“属性”并返回注入的 HTML 元素。 * */ declare function GM_addElement(tag_name: string, attributes: object) /* 创建一个由“tag_name”指定的 HTML 元素并应用所有给定的“属性”并返回注入的 HTML 元素。如果给出了“parent_node”,则将其附加到它或以其他方式附加到文档头或体。 * */ declare function GM_addElement(parent_node: HTMLElement, tag_name: string, attributes: object) /* 从存储中删除“名称”。 * */ declare function GM_deleteValue(name: string): void; /* 列出存储的所有名称。 * */ declare function GM_listValues(): string[]; /* 将更改侦听器添加到存储并返回侦听器 ID。 'name' 是观察变量的名称。 回调函数的“remote”参数显示该值是从另一个选项卡的实例 (true) 还是在此脚本实例 (false) 中修改的。 因此,不同浏览器选项卡的脚本可以使用此功能相互通信。 * */ declare function GM_addValueChangeListener(name: string, listener: GM_Types.ValueChangeListener): number; /* 按 ID 删除更改侦听器。 * */ declare function GM_removeValueChangeListener(listenerId: number): void; /* 设置本地存储'name'的值。 * */ declare function GM_setValue(name: string, value: any): void; /* 从存储中获取 'name' 的值。 * */ declare function GM_getValue(name: string, defaultValue ?: any): any; /* 将消息打印到控制台。 * */ declare function GM_log(message: string): any; /* 获取脚本头中预定义的@resource 标记的内容。 * */ declare function GM_getResourceText(name: string): string; /* 获取脚本标头处预定义 @resource 标记的 base64 编码 URI。 * */ declare function GM_getResourceURL(name: string): string; /* 在运行此脚本的页面的 Tampermonkey 菜单中注册要显示的菜单,并返回菜单命令 ID。 * */ declare function GM_registerMenuCommand(name: string, listener: Function, accessKey ?: string): number; /* 使用给定的菜单命令 ID 取消注册先前由 GM_registerMenuCommand 注册的菜单命令。 * */ declare function GM_unregisterMenuCommand(id: number): void; /* 使用此 url 打开一个新选项卡。 * */ declare function GM_openInTab(url: string, options: GM_Types.OpenTabOptions): void; /* 使用此 url 打开一个新选项卡。 * */ declare function GM_openInTab(url: string, loadInBackground: boolean): void; /* 使用此 url 打开一个新选项卡。 * */ declare function GM_openInTab(url: string): void; /* 创建一个 xmlHttpRequest。 * */ declare function GM_xmlhttpRequest<CONTEXT_TYPE>(details: GM_Types.XHRDetails<CONTEXT_TYPE>): GM_Types.AbortHandle<void>; /* 将给定的 URL 下载到本地磁盘。 * */ declare function GM_download(details: GM_Types.DownloadDetails): GM_Types.AbortHandle<boolean>; /* 将给定的 URL 下载到本地磁盘。 * */ declare function GM_download(url: string, filename: string): GM_Types.AbortHandle<boolean>; /* 只要此选项卡处于打开状态,就获取一个持久对象。 * */ declare function GM_getTab(callback: (obj: object) => any): void; /* 保存选项卡对象以在页面卸载后重新打开它。 * */ declare function GM_saveTab(obj: object): void; /* 获取所有选项卡对象作为散列以与其他脚本实例通信。 * */ declare function GM_getTabs(callback: (objs: { [key: number]: object }) => any): void; /* 显示 HTML5 桌面通知和/或突出显示当前选项卡。 * */ declare function GM_notification(details: GM_Types.NotificationDetails, ondone: Function): void; /* 显示 HTML5 桌面通知和/或突出显示当前选项卡。 * */ declare function GM_notification(text: string, title: string, image: string, onclick: Function): void; /* 将数据复制到剪贴板。参数 'info' 可以是像“{ type: 'text', mimetype: 'text/plain'}”这样的对象,或者只是一个表示类型的字符串(“text”或“html”)。 * */ declare function GM_setClipboard(data: string, info ?: string | { type?: string, mimetype?: string }): void; declare namespace GM_Types { type ValueChangeListener = (name: string, oldValue: any, newValue: any, remote: boolean) => any; interface OpenTabOptions { active?: boolean, insert?: boolean, setParent?: boolean } interface XHRResponse<CONTEXT_TYPE> extends Function { DONE: 4, HEADERS_RECEIVED: 2, LOADING: 3, OPENED: 1, UNSENT: 0 context: CONTEXT_TYPE, finalUrl: string, readyState: 0 | 1 | 2 | 3 | 4, responseHeaders: string, status: number, statusText: string, response: string | null, responseText: string, responseXML: Document | null } interface XHRProgress<CONTEXT_TYPE> extends XHRResponse<CONTEXT_TYPE> { done: number, lengthComputable: boolean, loaded: number, position: number, total: number, totalSize: number } type Listener<OBJ> = (this: OBJ, event: OBJ) => any; interface XHRDetails<CONTEXT_TYPE> { method?: "GET" | "HEAD" | "POST", url?: string, headers?: { readonly [key: string]: string }, data?: string, binary?: boolean, timeout?: number, context?: CONTEXT_TYPE, responseType?: "arraybuffer" | "blob" | "json", overrideMimeType?: string, anonymous?: boolean, fetch?: boolean, username?: string, password?: string, onload?: Listener<XHRResponse<CONTEXT_TYPE>>, onloadstart?: Listener<XHRResponse<CONTEXT_TYPE>>, onprogress?: Listener<XHRProgress<CONTEXT_TYPE>>, onreadystatechange?: Listener<XHRResponse<CONTEXT_TYPE>>, ontimeout?: Listener<Function>, onabort?: Function, onerror?: Function } interface AbortHandle<RETURN_TYPE> { abort(): RETURN_TYPE } interface DownloadError { error: "not_enabled" | "not_whitelisted" | "not_permitted" | "not_supported" | "not_succeeded", details?: string } interface DownloadDetails { url: string, name: string, headers?: { readonly [key: string]: string }, saveAs?: boolean, timeout?: number, onerror?: Listener<DownloadError>, ontimeout?: Listener<object>, onload?: Listener<object>, onprogress?: Listener<XHRProgress<void>> } interface NotificationThis extends NotificationDetails { id: string } type NotificationOnClick = (this: NotificationThis) => any; type NotificationOnDone = (this: NotificationThis, clicked: boolean) => any; interface NotificationDetails { text?: string, title?: string, image?: string, highlight?: boolean, timeout?: number onclick?: NotificationOnClick, ondone?: NotificationOnDone, } }
本文地址:
https://www.cnblogs.com/stumpx/p/15211436.html
===