fastchar-dom-plugin
Version:
Chrome插件,用于操作HTML的DOM
571 lines (570 loc) • 23.5 kB
TypeScript
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;
}
}