forked from zulip/zulip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
favicon.js
36 lines (30 loc) · 992 Bytes
/
favicon.js
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
var favicon = (function () {
var exports = {};
var favicon_selector = 'link[rel="shortcut icon"]';
// We need to reset the favicon after changing the
// window.location.hash or Firefox will drop the favicon. See
// https://bugzilla.mozilla.org/show_bug.cgi?id=519028
exports.reset = function () {
$(favicon_selector).detach().appendTo('head');
};
exports.set = function (url) {
if (/webkit/i.test(navigator.userAgent)) {
// Works in Chrome 22 at least.
// Doesn't work in Firefox 10.
$(favicon_selector).attr('href', url);
} else {
// Delete and re-create the node.
// May cause excessive work by the browser
// in re-rendering the page (see #882).
$(favicon_selector).remove();
$('head').append($('<link>')
.attr('rel', 'shortcut icon')
.attr('href', url));
}
};
return exports;
}());
if (typeof module !== 'undefined') {
module.exports = favicon;
}
window.favicon = favicon;