| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | 
							- //#region 桌面消息区域
 
- //w3c 消息区域 还在草案中
 
- Namespace.register("U.MN");
 
- U.MN.nif = window.notificationInstance; //消息总控
 
- //#region
 
- if (window.webkitNotifications) {
 
-     //消息使用
 
-     U.MN._UPS = window.webkitNotifications;
 
-     //函数初始化使用
 
-     U.M.HEPropert(U.MN._UPS, "onshow", function () {
 
-         return this.ondisplay;
 
-     },
 
-     function (UVE) { this.ondisplay = UVE; });
 
-     U.MN.UFN = function (UMT, UDE) {
 
-         var _UCE = U.MN._UPS.createNotification(UDE.icon, UMT, UDE.body);
 
-         _UCE.show(); return _UCE;
 
-     }
 
-     //继承消息
 
-     U.MN.UFN.prototype = window.webkitNotifications;
 
-     U.M.Setprototype(U.MN.UFN, {
 
-         requestPermission: function (UCB) { U.MN._UPS.requestPermission(UCB); },
 
-         permission: function () {
 
-             return { 0: "granted", 1: "denied", 2: "default"}[U.MN._UPS.checkPermission()];
 
-         },
 
-         close: function () { this.cancel(); }
 
-     });
 
- }
 
- //消息初始化
 
- U.MN.Notis = window.Notification = window.Notification || window.webkitNotifications;
 
- //#endregion
 
- //#region
 
- //添加消息提示
 
- U.MN.Noti = function (UDE) {
 
-     return U.MN.Noti.get(UDE);
 
- }
 
- //初始化
 
- U.MN.Noti.get = function (UDE) {
 
-     var _UDE = U.MN.Notis;
 
-     if (_UDE) {
 
-         if (_UDE.permission == "granted") {
 
-             if (UDE) {
 
-                 return new U.MN.Noti.init(UDE);
 
-             }
 
-         } //初始化消息
 
-         if (_UDE.permissi0on != "denied") {
 
-             _UDE.requestPermission(function (UTF) {
 
-                 if (UTF == "granted") { U.MN.Noti.get(UDE); }
 
-             });
 
-         } //消息
 
-     }
 
- }
 
- //初始化消息
 
- U.MN.Noti.init = function (UDE) {
 
-     this.UNM; this.UT = UDE; this.UE = UDE.e; this.time = UDE.t || 0;
 
- }
 
- U.MN.Noti.checkPermission = function () {
 
- }
 
- //显示所有消息
 
- U.MN.Noti.show = function () {
 
-     try { U.MN.nif.show() }
 
-     catch (e) { return e; }
 
- }
 
- //清除消息
 
- U.MN.Noti.cancel = function () {
 
-     try { U.MN.nif.cancel() }
 
-     catch (e) { return e; }
 
- }
 
- //消息功能区域
 
- U.MN.Noti.init.prototype = {
 
-     create: function (UMT, UDE, USE) { //创建消息 body  dir icon lang onlcick onclose onerrer onshow slient tag title  data  noscreen renotify sound vibrate
 
-         var _UME, _UME, _UTF = UDE == "string", Noti = U.MN.Notis; this.UE = USE = USE ? USE : this.UE;
 
-         if (Noti.permission == "granted") {
 
-             _UME = this.UNM = new Noti(UMT, UDE);
 
-             (USE) && (this.event(USE)); (this.time) && (this.timerc(this.time));
 
-         } //允许消息传递
 
-         else if (Noti.permission != "denied") { Noti.requestPermission(U.M.apply(this, [[this.Permission, [UMT, UDE]]])); } //认证允许
 
-         else { U.Alert("请启动消息推送!"); }
 
-     },
 
-     Permission: function (UMT, UDE, UTF) {//认证成功后
 
-         if (UTF == "granted") { this.create(UMT, UDE); }
 
-     },
 
-     set: function (UDE) { //消息设置
 
-         U.Ut.AddObj(this.UNM, UDE);
 
-     },
 
-     bind: function (UDE, UAE) { //事件绑定
 
-         $(this.UNM).bind(UDE, UAE);
 
-     },
 
-     unbind: function () {//取消事件绑定
 
-         $(this.UNM).unbind(UDE, UAE);
 
-     },
 
-     event: function (UDE) { //初始化消息
 
-         var i, _UND = this.UNM, _UDE = { oc: "onclick", ocl: "onclose", oe: "onerror", os: "onshow" };
 
-         for (i in UDE) { _UND[i] = _UND[_UDE[i]] = U.M.apply(this, [[this.aevent, [i, _UDE[i]]]]); }
 
-     },
 
-     aevent: function (UTF, UTP) {//事件统一出口
 
-         var _UDE = this.UE;
 
-         if (_UDE && _UDE[UTF]) {
 
-             if (U.Ut.isFunction(_UDE[UTF])) {
 
-                 _UDE[UTF]();
 
-             }
 
-             else { U.M.apply(this, _UDE[UTF])(); }
 
-             if (UTF == "oc" || UTF == "onclick") {//执行函数
 
-                 this.close();
 
-             }
 
-         }
 
-     },
 
-     close: function () {//关闭
 
-         if (this.UNM) {
 
-             this.UNM.close();
 
-             this.dispose();
 
-         }
 
-     },
 
-     dispose: function () { this.UT = this.UE = this.UNM = null; },
 
-     timerc: function (UT, UFE) { //指定事件关闭消息
 
-         setTimeout(U.M.apply(this, [[UFE], [this.close]]), UT);
 
-     },
 
-     show: function () { U.MN.show(); },
 
-     cancel: function () { U.MN.cancel(); }
 
- }
 
- //#endregion
 
- //#region
 
- //IFrame之间的消息通知。全兼容解决方案,太复杂,需要精简版本。
 
- // 页面消息传递,解决跨域问题。
 
- U.MN.message = function (UDE) {
 
-     return new U.MN.message.get.init(UDE);
 
- }
 
- U.MN.message._UTF = ("onmessage" in window);
 
- U.MN.message._UFS = function (UDE) {
 
-     try {
 
-         var _UME, _USE = "";
 
-         if (U.MN.message._UTF) { _USE = UDE.data; }
 
-         else { _USE = UDE || window.name; }  //设置
 
-         _USE = _USE.parseJSON();
 
-         _UME = U.MN.message.get.func[_USE[1]];
 
-         (_UME) && (_UME.message[_USE[0], _USE[2], _USE[3]]);
 
-     } catch (e) { }
 
- };
 
- if (U.MN.message._UTF) {
 
-     U.M.AddEvent("message", window, U.MN.message._UFS);
 
- }
 
- U.MN.message.get = U.MN.message.prototype = {
 
-     func: {},
 
-     ZS: 1,
 
-     init: function (UDE) { //初始化消息
 
-         U.Ut.AddObj(this, UDE);
 
-         this.id = this.id || Guid.guidNoDash();
 
-         this.func[this.id] = this;
 
-         if (!U.MN.message._UTF) {
 
-             if (this.Sender) {
 
-                 var _USE = this.obj;
 
-                 (U.Ut.isString(_USE)) && (_USE = $(_USE)[0]);
 
-                 this.url = U.M.getUrl(_USE.src).host;
 
-                 this.obj = $$("iframe", { style: { display: "none" }, width: "0", height: "0" }, document.body);
 
-             }
 
-             else { $().ready(U.M.apply(this, U.MN.message._UFS)); }
 
-         }
 
-     },
 
-     message: function (UDE) {//接收消息
 
-         (U.Ut.isFunction(this.me)) && (this.me(UDE));
 
-         if (this.Sender && !U.MN.message._UTF) {
 
-             var _UD = this.obj.contentWindow.document;
 
-             _UD.open();
 
-             _UD.write("");
 
-             _UD.close();
 
-             $(this.obj).remove();
 
-         } //释放
 
-     },
 
-     post: function (UDE, UDID, UCE) {//提交消息
 
-         var _UKE, _USE = this.obj;
 
-         UDE = U.MS.jsonToStr[UDE, UDID || "", this.id, UCE];
 
-         (U.Ut.isString(_USE)) && (_USE = $(_USE)[0]);
 
-         if (U.MN.message._UTF) {
 
-             try { _USE = _USE.contentWindow || _USE; }
 
-             catch (e) { _USE = this.obj; } _USE.postMessage(UDE, "*");
 
-         }
 
-         else {
 
-             if (this.url) {
 
-                 _USE.src = "about:blank";
 
-                 U.MD.IframeLoad(_USE, [[U.M.apply(this, [[this.ie, [_USE, UDE]]])]]);
 
-             }
 
-             else { window.name = UDE; window.location = this.lurl; }
 
-         } //消息提示
 
-     },
 
-     ie: function (USE, UDE) { USE.contentWindow.name = UDE; USE.contentWindow.location.href = this.url; }
 
- }
 
- U.MN.message.get.init.prototype = U.MN.message.get;
 
- U.MN.message.cb = U.MN.message._UFS;
 
- //#endregion
 
 
  |