コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:Kkkdc/oldidlink.js

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

多くの WindowsLinux のブラウザ

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

Mac における Safari

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

Mac における ChromeFirefox

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

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

function copyRevLink(type) {

	/****/
		function htmlspecialchars(str) {
			str = str.replace(/&/g,"&") ;
			str = str.replace(/"/g,""") ;
			str = str.replace(/'/g,"'") ;
			str = str.replace(/</g,"&lt;") ;
			str = str.replace(/>/g,"&gt;") ;
			return str;
		}

		function getRevisionIdFromUrl(url) {
			var regret = url.match(/\&oldid\=(\d+)\D*/);
			if ( regret == null ) { return null; }
			else {
				return regret[1];
			}
		}
	/****/

	var dateObj = null;
		 if ( type == 'A' ) { dateObj = document.getElementById('mw-revision-info'); }
	else if ( type == 'B' ) { dateObj = document.getElementById('mw-diff-ntitle1').firstChild.firstChild; }
	if ( !dateObj ) { return; }
	var date = dateObj.innerHTML.substring(0, 19); //for 1976-02-27T12:34:56 only


	var userInfo = null;
		 if ( type == 'A' ) { userInfo = dateObj; }
	else if ( type == 'B' ) { userInfo = document.getElementById('mw-diff-ntitle2'); }
	if ( !userInfo ) { return; }
	
	var user = null;
	for ( var i = 0; i < userInfo.childNodes.length; i++ ) {
		var ch = userInfo.childNodes[i];
		if ( ch.tagName == 'A' ) {
			user = ch.innerHTML;
			break;
		}
	}
	if ( !user ) { return; }
	
	
	var revid = null;
	if ( type == 'A' ) {
		var perLinkA = document.getElementById('t-permalink').firstChild;
		if ( !perLinkA ) { return; }
		revid = getRevisionIdFromUrl( perLinkA.href );
	} else if ( type == 'B' ) {
		revid = getRevisionIdFromUrl( dateObj.href );
	}
	if ( !revid ) { return; }

	var path = wgServer + wgScript;
	var text = "''[" + path + "?oldid=" + revid + " " + date + " (UTC) " + user + "]'' (差分[" + path + "?oldid=" + revid + "&diff=prev])";
	prompt("版指定リンクテキスト", text);
}

$ ( function(){
	var obj = document.getElementById('mw-revision-nav');
	if ( !obj ) { return; }

	var adder = document.createElement('span');
	adder.style.marginLeft = '1.5em';
	text = "<a href=\"javascript: copyRevLink('A');\">RevDiffLink</a>";
	adder.innerHTML = "[" + text + "]";

	obj.appendChild( adder );
});

$ ( function(){
	var obj = document.getElementById('mw-diff-ntitle2');
	if ( !obj ) { return; }

	var adder = document.createElement('span');
	adder.style.marginLeft = '1.5em';
	text = "<a href=\"javascript: copyRevLink('B');\">RevDiffLink</a>";
	adder.innerHTML = "[" + text + "]";

	obj.appendChild( adder );
});