中医药大学课题数据库系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

82 lines
2.2 KiB

(function(window) {
var _instance = null;
window.TallPlugin = function(config) {
this.config = config;
this.props = null;
};
// 初始化并保证是单例
TallPlugin.init = function(config) {
if (!_instance) {
_instance = new TallPlugin(config);
}
return _instance;
};
function postMsg(message) {
let origin = '*';
window.postMessage(message, origin);
}
TallPlugin.prototype.created = function(callback) {
console.log('created begin');
var _this = this;
postMsg('created');
window.addEventListener(
'message',
function({ data, origin }) {
console.log('on created message, data, origin: ', data, origin);
try {
var target = JSON.parse(data);
if (target.success) {
_this.props = JSON.parse(data);
callback && typeof callback === 'function' && callback.call(_this, _this.props);
}
// else {
// _this.props = null;
// }
} catch (e) {
_this.props = null;
}
},
false,
);
// DOM加载完成
window.addEventListener('DOMContentLoaded', this.mounted, false);
// window onload
window.addEventListener('load', this.loaded, false);
// destroy
window.addEventListener('unload', this.destroy, false);
// error
window.addEventListener('error', this.error, false);
return this;
};
TallPlugin.prototype.mounted = function(callback) {
console.log('mounted');
postMsg('mounted');
callback && typeof callback === 'function' && callback.call(this);
return this;
};
TallPlugin.prototype.loaded = function(callback) {
console.log('loaded');
postMsg('loaded');
callback && typeof callback === 'function' && callback.call(this);
return this;
};
TallPlugin.prototype.destroy = function(callback) {
console.log('destroy');
postMsg('destroy');
callback && typeof callback === 'function' && callback.call(this);
return this;
};
TallPlugin.prototype.error = function(callback) {
console.log('error');
postMsg('error');
callback && typeof callback === 'function' && callback.call(this);
return this;
};
})(window);