UNPKG

fastchar-dom-plugin

Version:

Chrome插件,用于操作HTML的DOM

571 lines (570 loc) 23.5 kB
export declare namespace FastPlugin { /** * 内容页面核心操作类 * @author 沈建(Janesen) */ class Core { private constructor(); static CallBackTimeoutStore: any; static CallBackFunctionStore: any; /** * 判断目标类型是否为函数 * @author 沈建(Janesen) * @param source */ static isFunction(source: any): boolean; /** * 检查插件版本,并提示更新 * @author 沈建(Janesen) */ static checkPluginVersion(): void; /** * 判断是否有新版本的插件 * @author 沈建(Janesen) */ static newPluginVersion(): boolean; /** * 设置方法执行超时时间,默认:15000 * @author 沈建(Janesen) * @param duration 超时时间,单位:毫秒 */ static setInvokeTimeout(duration: number): void; /** * 创建插件节点 * @author 沈建(Janesen) * @param id 插件的ID */ static createCallbackPluginEl(id?: string): any; /** * 执行方法 * @author 沈建(Janesen) * @param data 方法对象 * @param callback 回调函数 */ static invokeMethod(data: MethodInfo, callback: (result: CallbackInfo) => void): void; /** * 开启回调超时处理 * @author 沈建(Janesen) * @param targetCallbackId 回调ID * @private */ static startCallbackTimeout(targetCallbackId: string): void; /** * 清除超时回调处理 * @author 沈建(Janesen) * @param targetCallbackId 回调ID * @private */ static clearCallbackTimeout(targetCallbackId: string): void; /** * 检查是否符合回调条件 * @author 沈建(Janesen) * @param targetCallbackId 回调ID * @param isTimeout 是否超时 * @param autoRemoveCallbackEl 是否自动删除回调的节点 * @private */ static checkCallbackEl(targetCallbackId: string, isTimeout: boolean, autoRemoveCallbackEl: boolean): void; /** * 回调错误消息 * @author 沈建(Janesen) * @param targetCallbackId * @private */ private static callbackError; } /** * 内容页面Element相关操作 * @author 沈建(Janesen) */ class Element { private constructor(); /** * 获取节点的网页内容 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getHtml(".name",function(result){console.log(result)}); * ``` */ static getHtml(selector: string, callback: (result: CallbackInfo) => void): void; /** * 获取节点的网页内容 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getHtmlFromUrl("www.baidu.com",".name",function(result){console.log(result)}); * ``` */ static getHtmlFromUrl(urlPattern: string, selector: string, callback: (result: CallbackInfo) => void): void; /** * 获取节点的文本内容 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getText(".name",function(result){console.log(result)}); * ``` */ static getText(selector: string, callback: (result: CallbackInfo) => void): void; /** * 获取节点的文本内容 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getTextFromUrl("www.baidu.com",".name",function(result){console.log(result)}); * ``` */ static getTextFromUrl(urlPattern: string, selector: string, callback: (result: CallbackInfo) => void): void; /** * 设置目标节点value值 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param value 设置的值 * @param callback 回调函数 * @example * ``` * FastPlugin.Element.setValue(".name","fastchar",function(result){console.log(result)}); * ``` */ static setValue(selector: string, value: any, callback: (result: CallbackInfo) => void): void; /** * 设置目标节点value值 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param value 设置的值 * @param callback 回调函数 * @example * ``` * FastPlugin.Element.setValueFromUrl("www.baidu.com",".name","fastchar",function(result){console.log(result)}); * ``` */ static setValueFromUrl(urlPattern: string, selector: string, value: any, callback: (result: CallbackInfo) => void): void; /** * 获取目标节点的value值 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getValue(".name",function(result){console.log(result)}); * ``` */ static getValue(selector: string, callback: (result: CallbackInfo) => void): void; /** * 获取目标节点的value值 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.getValueFromUrl("www.baidu.com",".name",function(result){console.log(result)}); * ``` */ static getValueFromUrl(urlPattern: string, selector: string, callback: (result: CallbackInfo) => void): void; /** * 点击目标节点 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.click(".name",function(result){console.log(result)}); * ``` */ static click(selector: string, callback: (result: CallbackInfo) => void): void; /** * 点击目标节点 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.clickFromUrl("baidu.com",".name",function(result){console.log(result)}); * ``` */ static clickFromUrl(urlPattern: string, selector: string, callback: (result: CallbackInfo) => void): void; /** * 执行原生js事件 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param eventName 事件名 * @param callback 回调函数 * @example * ``` * FastPlugin.Element.fireEvent(".name","click",function(result){console.log(result)}); * ``` */ static fireEvent(selector: string, eventName: string, callback: (result: CallbackInfo) => void): void; /** * 执行原生js事件 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param eventName 事件名 * @param callback 回调函数 * @example * ``` * FastPlugin.Element.fireEventFromUrl("baidu.com",".name","click",function(result){console.log(result)}); * ``` */ static fireEventFromUrl(urlPattern: string, selector: string, eventName: string, callback: (result: CallbackInfo) => void): void; /** * 动态执行方法 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param method jquery方法名 * @param params jquery方法参数 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.invokeFromUrl("baidu.com","val",["fastchar"],".name",function(result){console.log(result)}); * ``` */ static invokeFromUrl(urlPattern: string, method: string, params: any[], selector: string, callback: (result: CallbackInfo) => void): void; /** * 动态执行方法 * @author 沈建(Janesen) * @param method jquery方法名 * @param params jquery方法参数 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.invoke("val",["fastchar"],".name",function(result){console.log(result)}); * ``` */ static invoke(method: string, params: any[], selector: string, callback: (result: CallbackInfo) => void): void; /** * 动态执行方法 * @author 沈建(Janesen) * @param methodeInfo 方法对象参数 * @param callback 回调函数 * @example * ``` * FastPlugin.Element.invokeMethod(new MethodInfo("val", [".name"], ["值"], undefined),function(result){console.log(result)}); * ``` */ static invokeMethod(methodeInfo: MethodInfo, callback: (result: CallbackInfo) => void): void; /** * 判断目标节点是否存在 * @author 沈建(Janesen) * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.exist(".name",function(result){console.log(result)}); * ``` */ static exist(selector: string, callback: (result: CallbackInfo) => void): void; /** * 判断目标节点是否存在 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param selector <a href="https://api.jquery.com/category/selectors/" target="_blank">jquery选择器</a> * @param callback 回调函数 * @example * ``` * FastPlugin.Element.existFromUrl("baidu.com",".name",function(result){console.log(result)}); * ``` */ static existFromUrl(urlPattern: string, selector: string, callback: (result: CallbackInfo) => void): void; } /** * 内容页面Location操作类 * @author 沈建(Janesen) */ class Location { private constructor(); /** * 刷新目标网页 * @author 沈建(Janesen) * @param urlPattern * @param callback * @example * ``` * FastPlugin.Location.reloadFromUrl("baidu.com",function(result){console.log(result)}); * ``` */ static reloadFromUrl(urlPattern: string, callback: (result: CallbackInfo) => void): void; /** * 判断目标地址是否已打开标签。注意:如果地址匹配到一个或多个tab,则返回true,否则返回false * @author 沈建(Janesen) * @param urlPattern 地址匹配 * @param callback * @example * ``` * FastPlugin.Location.hasTabFomUrl("baidu.com",function(result){console.log(result)}); * ``` */ static hasTabFomUrl(urlPattern: string, callback: (result: boolean | undefined) => void): void; /** * 获取目标网站的cookie * @author 沈建(Janesen) * @param cookieFilter cookie筛选 * @param callback * @example * ``` * FastPlugin.Location.getCookie({domain:"www.baidu.com"},function(result){console.log(result)}); * ``` */ static getCookie(cookieFilter: CookieInfo, callback: (result: CallbackInfo) => void): void; } /** * http请求操作类 */ class Http { /** * 添加http请求响应后的监听,注意:此监听只适用于http请求后返回字符(json、text、xml)内容的http请求。 * @author 沈建(Janesen) * @param origin 需要监听的网站主域名,例如:浏览器地址为 http://www.baidu.com/tes/123/abc 那么origin值为: http://www.baidu.com * @param callback * @example * ``` * FastPlugin.Http.addResponseListener("https://www.baidu.com",function(result){console.log(result)}); * ``` */ static addResponseListener(origin: string, callback: (result: CallbackInfo) => void): void; } /** * 对话框操作 * @author 沈建(Janesen) */ class Dialog { private constructor(); /** * 显示等待框 * @author 沈建(Janesen) * @param message 等待框消息 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showLoading("请稍候……",function(result){console.log(result)}); * ``` */ static showLoading(message: string, callback: (result: CallbackInfo) => void): void; /** * 显示等待框 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param message 等待框消息 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showLoadingToUrl("www.baidu.com","请稍候……",function(result){console.log(result)}); * ``` */ static showLoadingToUrl(urlPattern: string, message: string, callback: (result: CallbackInfo) => void): void; /** * 隐藏等待框 * @author 沈建(Janesen) * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.hideLoading(function(result){console.log(result)}); * ``` */ static hideLoading(callback: (result: CallbackInfo) => void): void; /** * 隐藏等待框 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.hideLoadingToUrl("www.baidu.com",function(result){console.log(result)}); * ``` */ static hideLoadingToUrl(urlPattern: string, callback: (result: CallbackInfo) => void): void; /** * 显示对话框,注意此方法将通知所有页面,并且点击按钮或关闭对话框后回调 * @author 沈建(Janesen) * @param title 标题 * @param message 消息 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showAlert("系统提醒","请您填写内容",function(result){console.log(result)}); * ``` */ static showAlert(title: string, message: string, callback: (result: CallbackInfo) => void): void; /** * 显示对话框,注意此方法要求用户点击按钮或关闭对话框后回调 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param title 标题 * @param message 消息 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showAlertToUrl("www.baidu.com","系统提醒","请您填写内容",function(result){console.log(result)}); * ``` */ static showAlertToUrl(urlPattern: string, title: string, message: string, callback: (result: CallbackInfo) => void): void; /** * 显示确认对话框,注意此方法将通知所有页面,并且点击按钮或关闭对话框后回调 * @author 沈建(Janesen) * @param title 标题 * @param message 消息 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showConfirm("系统提醒","确定删除吗?",function(result){console.log(result)}); * ``` */ static showConfirm(title: string, message: string, callback: (result: CallbackInfo) => void): void; /** * 显示确认对话框,注意此方法要求用户点击按钮或关闭对话框后回调 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param title 标题 * @param message 消息 * @param callback * @example * ``` * FastPlugin.Dialog.showConfirmToUrl("www.baidu.com","系统提醒","确定删除吗?",function(result){console.log(result)}); * ``` */ static showConfirmToUrl(urlPattern: string, title: string, message: string, callback: (result: CallbackInfo) => void): void; /** * 显示对话框,注意此方法将通知所有页面,并且不会等待用户操作对话框后回调 * @author 沈建(Janesen) * @param title 标题 * @param message 消息 * @param duration 自动关闭时间,单位毫秒 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showAlertTip("系统提醒","请您填写内容",1000,function(result){console.log(result)}); * ``` */ static showAlertTip(title: string, message: string, duration: number, callback: (result: CallbackInfo) => void): void; /** * 显示对话框,注意此方法不会要求用户点击按钮或关闭对话框后回调 * @author 沈建(Janesen) * @param urlPattern 指定tab页并且tab页面的地址包含urlPattern关键字 * @param title 标题 * @param message 消息 * @param duration 自动关闭时间,单位毫秒 * @param callback 回调函数 * @example * ``` * FastPlugin.Dialog.showAlertTipToUrl("www.baidu.com","系统提醒","请您填写内容",1000,function(result){console.log(result)}); * ``` */ static showAlertTipToUrl(urlPattern: string, title: string, message: string, duration: number, callback: (result: CallbackInfo) => void): void; } /** * 执行方法统一回调的实体信息 * @author 沈建(Janesen) */ class CallbackInfo { constructor(success: boolean | undefined, message: string | undefined, code: number | undefined, data: any[] | undefined); /** * 是否执行成功,注意此处成功只能表示页面接受了方法执行,并不代表方法执行成功,方法执行结果查看data属性值 */ success: boolean | undefined; /** * 执行消息 */ message: string | undefined; /** * 执行结果编号,0:正常执行 -9:插件未安装 -1:未有页面执行 -2 功能执行超时 -8 页面与插件发生错误 */ code: number | undefined; /** * 结果数据 */ data: any[] | undefined; /** * 执行操作统计 */ invoke: number | undefined; /** * 执行的方法信息 */ method: MethodInfo | undefined; } /** * 方法信息 * @author 沈建(Janesen) */ class MethodInfo { constructor(method: string | undefined, selectors: any[] | undefined, params: any[] | undefined, urlPattern: string | undefined); /** * 方法名称,必须与jquery的方法名一致 */ method: string | undefined; /** * 节点选择器,与jquery规则一致 */ selectors: any[] | undefined; /** * 方法参数 */ params: any[] | undefined; /** * 指定匹配的链接地址,当网页地址包含此地址时执行方法 */ url: string | undefined; /** * 回调函数的ID */ callbackId: string | undefined; /** * JS方法执行类型,默认使用 jquery 对象执行,可选值:js,jquery */ type: string; /** * 超时处理 */ timeout: boolean; } /** * 获取cookie的参数对象 * @author 沈建(Janesen) */ class CookieInfo { /** * 限定只查找与给定域名或者子域名匹配的cookies。 */ domain?: string | undefined; /** * 根据名称过滤cookies。 */ name?: string | undefined; /** * 限定只查找与给定URL匹配的cookies。 */ url?: string | undefined; /** * cookie的存储id,用于从中检索cookie。默认情况下,当前执行上下文的cookie存储将被使用。 */ storeId?: string | undefined; /** * 根据cookie的生命周期是会话的还是持久的进行过滤。 */ session?: boolean | undefined; /** * 限定只查找与给定路径完全一致的cookies。 */ path?: string | undefined; /** * 根据cookie的Secure属性进行筛选。 */ secure?: boolean | undefined; } }