youRoom コメント自動表示
by
mat_aki
2010-07-22 [2010/07/22 21:34:38]
youRoomのコメントをマウスオーバーで展開します。#youroom
-
/*
* @title youRoom コメント自動表示
* @description youRoomのコメントをマウスオーバーで展開します。#youroom
* @include https://www.youroom.in/*
* @license MIT License
* @require
*/
(function(){
function getElements(elementList, element, tagName, checkName, checkType, isNest) {
var elements = element.childNodes;
var i = 0;
for (i = 0; i < elements.length; i++) {
var e = elements.item(i);
if (isNest) {
getElements(elementList, e, tagName, checkName, checkType, isNest);
}
if (e.tagName == tagName) {
if ((checkType == 'id' && e.id == checkName) || (checkType == 'in' && e.className.indexOf(checkName) != -1) || e.className == checkName) {
elementList.push(e);
}
}
}
}
function getComment(e){
var setTarget = e.target.parentNode.parentNode.parentNode.parentNode.parentNode
e.target.parentNode.innerHTML = 'Reading...';
var req = new XMLHttpRequest();
req.open('GET', e.target.href, true);
req.onreadystatechange = function() {
if (req.readyState == 4) {
var res = document.createElement('div');
res.innerHTML = req.responseText;
var showList = new Array();
getElements(showList, res, 'DIV', 'entry_show', 'id', true);
setTarget.innerHTML = '';
setTarget.appendChild(showList[0]);
}
}
req.send(null);
}
var main = document.getElementById('main');
var elementList = new Array();
getElements(elementList , main, 'A', 'jqui_icon_link', '', true);
var i = 0;
for (i = 0; i < elementList .length; i++) {
var e = elementList [i];
e.addEventListener('mouseover', getComment, true);
}
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。