程序猿式无聊

  1 function withjQuery(callback, safe) {
  2     if (typeof (jQuery) == "undefined") {
  3         var script = document.createElement("script");
  4         script.type = "text/javascript";
  5         script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
  6 
  7         if (safe) {
  8             var cb = document.createElement("script");
  9             cb.type = "text/javascript";
 10             cb.textContent = "jQuery.noConflict();(" + callback.toString() + ")(jQuery);";
 11             script.addEventListener('load', function() {
 12                 document.head.appendChild(cb);
 13             });
 14         } else {
 15             var dollar = undefined;
 16             if (typeof ($) != "undefined")
 17                 dollar = $;
 18             script.addEventListener('load', function() {
 19                 jQuery.noConflict();
 20                 $ = dollar;
 21                 callback(jQuery);
 22             });
 23         }
 24         document.head.appendChild(script);
 25     } else {
 26         callback(jQuery);
 27     }
 28 }
 29 
 30 withjQuery(function($) {
 31     var Notify = {
 32         icon: "http://im.qq.com/favicon.ico",
 33         title: "消息提醒",
 34         target: null,
 35         
 36         isSupport: function() {
 37             return !!window.webkitNotifications;
 38         },
 39         getPermission: function(callback) {
 40             window.webkitNotifications.requestPermission(function() {
 41                 if (callback) {
 42                     callback(this.checkPermission());
 43                 }
 44             });
 45         },
 46         checkPermission: function() {
 47             return !!(window.webkitNotifications.checkPermission() == 0);
 48         },
 49         show: function(msg) {
 50             Notify.target = window.webkitNotifications.createNotification(this.icon, this.title, msg);
 51             Notify.target.show();
 52             setTimeout(this.close, 5000);
 53         },
 54         close: function() {
 55             if(!Notify.target) return;
 56             
 57             Notify.target.cancel();
 58             Notify.target = null;
 59         }
 60     };
 61     
 62     function notice(msg) {
 63         if(Notify.checkPermission()) {
 64             Notify.show(msg);
 65         }else{
 66             alert(msg);
 67         }
 68         if(jQuery("#audio:checked").size() > 0 ) new Audio("http://static.fishlee.net/resources/audio/music2.ogg").play();
 69     }
 70 
 71     var interval = 10;
 72     function init() {
 73         $("div.toolbar").append("&nbsp;&nbsp;<input type='checkbox' id='audio' checked='checked'>audio&nbsp;&nbsp;(最后刷新:<font color='red' id='refreshlabel'>"+new Date()+"</font>&nbsp;&nbsp;下次刷新:<font color='red' id='countdown'>-</font>)");
 74         jQuery("a.del-record").remove();
 75         jQuery("ul.msg>li:last>h2").append("(" + jQuery("h2.date:last").text() + ")");
 76 
 77         setInterval(function(){countdown(interval);refreshMsg();}, interval * 1000);
 78         countdown(interval);
 79     }
 80 
 81     function countdown(n) {
 82         jQuery("#countdown").html(n);
 83         if(n > 0) setTimeout(function(){countdown(n-1);}, 1000);
 84     }
 85 
 86     var lastest = '';
 87     function refreshMsg() {
 88 
 89         jQuery("#chatMsgList").html("");
 90         jQuery("script[src='http://5.url.cn/verify/webkit/js/16/novip.min.js']").remove();
 91         jQuery(document.body).append("<script type=\"text/javascript\" src=\"http://5.url.cn/verify/webkit/js/16/novip.min.js\"></script>");
 92 
 93         setTimeout(function(){
 94             jQuery("#refreshlabel").html("" + new Date());
 95 
 96             var t = jQuery("ul.msg>li:last>h2").text();
 97             jQuery("a.del-record").remove();
 98             jQuery("ul.msg>li:last>h2").append("(" + jQuery("h2.date:last").text() + ")");
 99             if(lastest == "") lastest = t;
100             if(t != "" && t != lastest) {
101                 notice(jQuery("ul.msg>li:last>p").text());
102                 lastest = t;
103             }
104         }, 1000);
105     }
106     
107     window.onbeforeunload = function() {
108         return '提示:\n关闭该页将会停止消息提醒!'; 
109     };
110     
111     
112     jQuery(document).ready(function(){
113 
114         if(!Notify.checkPermission()) {
115             jQuery(document.body).prepend('<input type="button" value="getPremission" id="getPremissionBtn" style="width:100px;height:30px;">');
116         }
117         
118         jQuery('#getPremissionBtn').live('click', function(){
119             Notify.getPermission();
120             if(Notify.checkPermission()) {
121                 jQuery(this).remove();
122             }
123         });
124         
125         init();
126         
127     });
128     
129 }, true);

 

posted @ 2013-04-06 19:17  jieyuefeng  阅读(254)  评论(0编辑  收藏  举报