コンテンツにスキップ

利用者:Cpro/appendContributionsLinkForVote.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

/*
	投票時の履歴確認用リンク生成スクリプト
	appendContributionsLinkForVote [[利用者:Cpro|cpro]] 2008年2月1日 (金) 07:44 (UTC)

	<div id="vote-section"></div>で囲まれた範囲にある順序リスト (OL) 内の
	署名の末尾に、投稿履歴へのリンクを挿入します。
	
	vote-section内に <span id="vote-parameters"></span> で絞り込み条件を
	指定可能です。例:
	<span id="vote-parameters">offset=20080119135445 limit=49 namespace=0</span>
	offset, limit, namespace以外は受け付けません。データは数値のみ。
	
	----
	以下のスクリプトはパブリックドメインとします。
	改変・再配布を含め自由にお使いいただけますが、自己責任でお願いします。
	These scripts below are under public domain.
	You can freely use, modify or redistribute, at your own risk.
 */

var ID_VOTE_SECTION = 'vote-section';
var ID_VOTE_PARAMETERS = 'vote-parameters';

function appendContributionsLinkForVote() {
	var vote_section = document.getElementById(ID_VOTE_SECTION);
	if(!vote_section) return;
	
	//パラメータ取得
	var parameters = { 'title': encodeURIComponent('特別:Contributions') };
	var parameters_container = document.getElementById(ID_VOTE_PARAMETERS);
	if(parameters_container) {
		var param_text = parameters_container.innerHTML, m;
		if(m = param_text.match(/offset=(\d{14})/)) parameters['offset'] = m[1];
		if(m = param_text.match(/limit=(\d+)/))     parameters['limit'] = m[1];
		if(m = param_text.match(/namespace=(\d+)/)) parameters['namespace'] = m[1];
	}
	
	//ノード探索
	var olists = vote_section.getElementsByTagName('ol');
	for(var i = 0, olist; olist = olists[i]; i++) {
		var litems = olist.getElementsByTagName('li');
		for(var j = 0, litem; litem = litems[j]; j++) {
			var anchors = litem.getElementsByTagName('a');
			for(var k = 0, anchor; anchor = anchors[k]; k++) {
				var m;
				if(m = anchor.href.match(/\/wiki\/%E5%88%A9%E7%94%A8%E8%80%85:(.+)$/)) {
					parameters['target'] = m[1];
					
					var uri = wgScript + '?';
					for(var param in parameters)
						uri += param + '=' + parameters[param] + '&';
					
					var anchor_contrib = document.createElement('a');
					anchor_contrib.href = uri;
					anchor_contrib.innerHTML = '[履歴]';
					anchor_contrib.style.fontSize = 'smaller';
					
					litem.appendChild(anchor_contrib);
					break;
				}
			}
		}
	}
}
$(appendContributionsLinkForVote);