page-communication
Version:
Communication between web pages
140 lines (134 loc) • 6.73 kB
TypeScript
// Generated by dts-bundle v0.7.3
declare module 'page-communication' {
export * from "page-communication/communication";
export * from "page-communication/event";
export * from "page-communication/handler";
}
declare module 'page-communication/communication' {
import { EventEmitter } from 'page-communication/event';
export class PageSocket extends EventEmitter {
/**
* socket communication between pages
* @param context otherwindow
* @param target otherwindow origin
*/
constructor(context: any, target: string);
/**
* send data to the destination page
* @param data string or arraybuffer
*/
send(data: any): void;
}
}
declare module 'page-communication/event' {
/**
* @author confiner
* @desc 可调度事件的所有类的基类。
*/
export class Event {
static readonly Message: string;
static readonly Error: string;
}
export class EventEmitter {
/**
* 检查 EvetEmitter 对象是否为特定事件类型注册了任何侦听器。
* @param type 事件的类型。
* @return 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
*/
hasListener(type: string): boolean;
/**
* 派发事件。
* @param type 事件类型。
* @param data (可选)回调数据。<b>注意:</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p ,且 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
* @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。
*/
event(type: string, data?: any): boolean;
/**
* 使用 EventEmmiter 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。
* @param type 事件的类型。
* @param caller 事件侦听函数的执行域。
* @param listener 事件侦听函数。
* @param args (可选)事件侦听函数的回调参数。
* @return 此 EvetEmitter 对象。
*/
on(type: string, caller: any, listener: Function, args?: any): EventEmitter;
/**
* 使用 EventEmitter 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。
* @param type 事件的类型。
* @param caller 事件侦听函数的执行域。
* @param listener 事件侦听函数。
* @param args (可选)事件侦听函数的回调参数。
* @return 此 EventEmitter 对象。
*/
once(type: string, caller: any, listener: Function, args?: any): EventEmitter;
/**@private */
_createListener(type: string, caller: any, listener: Function, args: any, once: boolean, offBefore?: Boolean): EventEmitter;
/**
* 从 EventEmitter 对象中删除侦听器。
* @param type 事件的类型。
* @param caller 事件侦听函数的执行域。
* @param listener 事件侦听函数。
* @param onceOnly (可选)如果值为 true ,则只移除通过 once 方法添加的侦听器。
* @return 此 EventEmitter 对象。
*/
off(type: string, caller: any, listener: Function, onceOnly?: boolean): EventEmitter;
/**
* 从 EventEmitter 对象中删除指定事件类型的所有侦听器。
* @param type (可选)事件类型,如果值为 null,则移除本对象所有类型的侦听器。
* @return 此 EventEmitter 对象。
*/
offAll(type?: string | null): EventEmitter;
}
}
declare module 'page-communication/handler' {
export class Handler {
caller: any;
method: Function | null;
args: Array<any> | null;
once: Boolean;
protected _id: number;
/**
* 根据指定的属性值,创建一个 <code>Handler</code> 类的实例。
* @param caller 执行域。
* @param method 处理函数。
* @param args 函数参数。
* @param once 是否只执行一次。
*/
constructor(caller?: any, method?: Function | null, args?: Array<any> | null, once?: Boolean);
/**
* 设置此对象的指定属性值。
* @param caller 执行域(this)。
* @param method 回调方法。
* @param args 携带的参数。
* @param once 是否只执行一次,如果为true,执行后执行recover()进行回收。
* @return 返回 handler 本身。
*/
setTo(caller: any, method: Function | null, args: Array<any> | null, once: Boolean): Handler;
/**
* 执行处理器。
*/
run(): any;
/**
* 执行处理器,携带额外数据。
* @param data 附加的回调数据,Array
*/
runWith(data: any): any;
/**
* 清理对象引用。
*/
clear(): Handler;
/**
* 清理并回收到 Handler 对象池内。
*/
recover(): void;
/**
* 从对象池内创建一个Handler,默认会执行一次并立即回收,如果不需要自动回收,设置once参数为false。
* @param caller 执行域(this)。
* @param method 回调方法。
* @param args 携带的参数。
* @param once 是否只执行一次,如果为true,回调后执行recover()进行回收,默认为true。
* @return 返回创建的handler实例。
*/
static create(caller: any, method: Function, args?: any, once?: Boolean): Handler;
}
}