一歩前進

昨日のエントリのグリモンですが、コールバック関数に引数を渡す方法がわからなくてエラーになってた件、対応できた。
http://eclipse.cspc.jp/さんとこのhttp://eclipse.cspc.jp/perma/000263/ってエントリが、自分のやりたい事と全く同じ事をされてたんで参考になりました。( ^ω^)
クロージャ?レキシカルスコープ?ってんでしょうか、ソースの意味はよく理解出来ていない(汗ものの、まずは思い通りの結果を得られたので一歩前進です。

ソース

// ==UserScript==
// @name           chiebukuroUsefulPointGetter
// @namespace      http://d.hatena.ne.jp/so_blue/
// @include        http://my.chiebukuro.yahoo.co.jp/my/myspace_ansdetail.php*
// ==/UserScript==
(function(){
	var xpath = '/descendant::div[@class=\'category\']';
	var r = document.evaluate(xpath, document.body, null, 7, null);
	var re = new RegExp('\\d+', 'ig');
	for (var i = 0, len = r.snapshotLength; i < len; i++) {
		if (r.snapshotItem(i).parentNode.getElementsByTagName('IMG')[0].alt == '\u89e3\u6c7a\u6e08\u307f') {
			var sURL = r.snapshotItem(i).parentNode.getElementsByTagName('A')[0].href.split('\*-')[1];
			GM_xmlhttpRequest({
				method: 'GET',
				url: sURL,
				onload: setUsefulPoint(i)
			});
		}
	}
	function setUsefulPoint(nodeIndex) {
		return function(req) {
			var x = document.createElement('DIV');
			x.innerHTML = req.responseText;
			var t = x.getElementsByClassName('useful')[0].getElementsByTagName('P')[0].textContent;
			var s = t.split('\u4eba\u4e2d');
			var s1 = s[0].match(re).join('');
			var s2 = s[1].match(re).join('');
			s = ' ' + s2 + ' / ' + s1;
			var elmSPAN = document.createElement('SPAN');
			elmSPAN.style.fontSize = 'small';
			elmSPAN.textContent = s;
			r.snapshotItem(nodeIndex).appendChild(elmSPAN);
		}
	}
})();

現時点ではこんな感じになります

普通の回答一覧ページは

な感じですが、このグリモンを入れると

な感じで評価ポイント(赤線で囲まれてる部分)が表示されます。

まだ対応しないといけない点

知恵袋のページってAutoPagerizeに対応されてるんで、AutoPagerizeで追加表示されたページにもこいつが適用される様にしないと駄目ですね。