程序猿式无聊
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(" <input type='checkbox' id='audio' checked='checked'>audio (最后刷新:<font color='red' id='refreshlabel'>"+new Date()+"</font> 下次刷新:<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);