crowy 更新表示
by
den2sn
2011-10-07 [2011/10/07 09:17:09]
crowy の更新を確認して未読の件数をタイトルに表示します #crowy
-
/*
* @title crowy 更新表示
* @description crowy の更新を確認して未読の件数をタイトルに表示します #crowy
* @include http://www.crowy.net*
* @license MIT License
* @require
*/
(function(){
var timer = null;
function getElements(element, selector) {
var list = new Array();
list.push(element);
return selectList(list, selector);
}
function selectList(list, name) {
var retList = new Array();
var i;
for (i = 0; i < list.length; i++) {
var element = list[i];
if (element.nodeType == 1) {
var e = selectElement(element, name);
if (e != null) {
retList.push(e);
}
}
retList = retList.concat(selectList(element.childNodes, name));
}
return retList;
}
function selectElement(element, name) {
var tagName;
var className;
var idName;
if (name.indexOf('.') != -1) {
tagName = name.substring(0, name.indexOf('.'));
className = name.substring(name.indexOf('.') + 1, name.length);
} else if (name.indexOf('#') != -1) {
tagName = name.substring(0, name.indexOf('#'));
idName = name.substring(name.indexOf('#') + 1, name.length);
} else {
tagName = name;
}
if (element.tagName == tagName.toUpperCase() &&
(idName == null || element.id == idName) &&
(className == null || element.className.indexOf(className) != -1)
) {
return element;
}
return null;
}
function reloadCount(){
var title = document.title;
var cntIndex = 0;
if ((cntIndex = title.indexOf(')')) != -1) {
document.title = title.substring(cntIndex+1);
}
var list = getElements(document.getElementById('tabs'), 'div.new-count');
var countList = new Array();
var i;
for (i = 0; i < list.length; i++) {
var s = list[i].innerHTML;
if (s != '0' && s != '') {
countList.push(s);
}
}
if (countList.length != 0) {
document.title = '(' + countList.join('/') + ')' + document.title;
}
}
reloadCount();
var elementList = getElements(document.getElementById('tabs'), 'div.new-count');
var i = 0;
for (i = 0; i < elementList .length; i++) {
var e = elementList[i];
e.addEventListener('click', reloadCount, true);
}
timer = setInterval(reloadCount, 60000);
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。