はてなハイクでプロフィールを表示
by
wakabatan
2011-03-04 [2011/03/04 09:20:35]
はてなハイクでユーザーアイコンやユーザー名の上にマウスポインタを乗せると、右サイドバーにプロフィールを表示します。
-
/*
* @title はてなハイクでプロフィールを表示
* @description はてなハイクでユーザーアイコンやユーザー名の上にマウスポインタを乗せると、右サイドバーにプロフィールを表示します。
*/
var container = document.getElementById('rightbar');
container.style.overflow = 'visible';
var div;
window.onmouseover = function (ev) {
var target = ev.target;
while (!target.tagName || target.tagName.toUpperCase() != 'A') {
target = target.parentNode;
if (!target) return;
}
var url = target.href;
if (!url) return;
var m = url.match(/^http:\/\/[^\/]+\/(?:touch\/|mobile\/)?([^/]+)\/$/);
if (!m) return;
var entry = target;
while (entry.parentNode) {
entry = entry.parentNode;
if (Ten.DOM.hasClassName(entry.parentNode, 'entry')) {
break;
}
}
var profileURL = '/' + m[1] + '/profile?only=body';
var xhr = new XMLHttpRequest();
xhr.open('GET', profileURL, true);
xhr.onreadystatechange = function () {
if (!xhr.readyState == 4) return;
if (xhr.status >= 400) return;
div = div || document.createElement('div');
div.innerHTML = xhr.responseText;
div.style.position = 'absolute';
div.style.right = 0;
div.style.width = '181px';
div.style.top = (entry.offsetTop - container.offsetTop) + 'px';
container.appendChild(div);
};
xhr.send(null);
};
/*
Copyright 2011 Wakaba <w@suika.fam.cx>.
You are granted a license to use, reproduce and create derivative works of this software.
*/
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。