This repository has been archived by the owner on Oct 1, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
background.html
110 lines (96 loc) · 2.77 KB
/
background.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<!--
12306 Assistant
Copyright (C) 2012 flytreeleft (flytreeleft@126.com)
THANKS:
Hidden, Jingqin Lynn, Kevintop
Includes jQuery
Copyright 2011, John Resig
Dual licensed under the MIT or GPL Version 2 licenses.
http://jquery.org/license
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<html>
<script type="text/javascript">
var user = {};
var ticket = {};
var periodOfPresale = '';
var notifyIcons = {
'default': './images/default.ico'
};
var tipSounds = {
'default': './sound/default.ogg',
'login': './sound/default.ogg',
'ticket': './sound/default.ogg',
'book': './sound/default.ogg',
'order': './sound/default.ogg'
};
var notificationStack = [];
var audio = new Audio();
// 显示提示信息
function notify(msg, type) {
var type = type || 'default',
msg = msg || '',
delay = 5000;
if (webkitNotifications && msg) {
var notification = webkitNotifications.createNotification(
notifyIcons[type],
'',
msg
);
// 三个以上的将不能立即显示,所以先取消最前面
if (notificationStack.length >= 3) {
notificationStack.shift().notify.cancel();
}
notification.show();
notificationStack.push({
start: new Date(),
delay: delay,
notify: notification
});
setTimeout(function() {
// 取消到期的提示信息
var end = new Date();
var message = notificationStack.length > 0 ? notificationStack[0] : null;
if (message
&& (end.getTime() - message.start.getTime() >= message.delay)) {
notificationStack.shift().notify.cancel();
}
}, delay);
}
}
// 播放提示音乐
function play(type) {
var type = type || 'default';
if (audio && !audio.paused) audio.pause();
audio.src = tipSounds[type];
audio.loop = false;
audio.play();
}
function init() {
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
var action = request ? request.action : '';
if (action == 'notify') {
notify(request.msg, request.type, request.delay);
} else if (action == 'play') {
play(request.type);
} else if (action == 'user') {
sendResponse(user);
} else if (action == 'ticket') {
sendResponse(ticket);
} else if (action == 'periodOfPresale') {
periodOfPresale = request.value;
}
});
}
</script>
<body onload="init();"></body>
</html>