コンテンツにスキップ

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

利用者:Marine-Blue/rvbot.js

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

多くの WindowsLinux のブラウザ

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

Mac における Safari

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

Mac における ChromeFirefox

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

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

/*

////////////////////////////////////////////////////////////////////////////////////////
//
//  rvbot.js
//
//  last update 2012-01-26
//
////////////////////////////////////////////////////////////////////////////////////////

「巻き戻し」リンクの横に「巻き戻し (bot)」リンクを追加する。
リンクをクリックすると巻き戻しと巻き戻し対象の編集がRCやウォッチリストでボット扱いされる。
巻き戻し者導入で需要が増えるよ!やったね!…なのでIE対応しました。

*/

function addRvBotLink() {
	// 履歴、特別ページ、差分表示以外では作動させない
	if(mw.config.get('wgNamespaceNumber') == -1 || mw.config.get('wgAction') == "history" || String(document.location).indexOf("diff") > -1) {
		// サイドバーやメニューを検索対象から除外
		var documentBody = document.getElementById("bodyContent");
		var allAnchor = documentBody.getElementsByTagName("a");
		
		for(i = 0; i < allAnchor.length; i++) {
			if(allAnchor[i].href.indexOf("action=rollback") > -1 && allAnchor[i].href.indexOf("bot=1") == -1) {
				// IEはouterHTMLを使用してリンク挿入
				if(document.all) {
					// リンク先にbotパラメータ追加
					var newAnchor = allAnchor[i].href + "&bot=1";
					
					// ページの種類を判断してフォーマット変更
					if(mw.config.get('wgAction') == "history") { // 履歴
						allAnchor[i].outerHTML += " | <span class=\"plainlinks\"><a href=\"" + newAnchor + "\">" + allAnchor[i].innerText + " (bot)</a></span>";
					}
					else { // 投稿記録、差分表示など
						allAnchor[i].outerHTML += "][<span class=\"plainlinks\"><a href=\"" + newAnchor + "\">" + allAnchor[i].innerText + " (bot)</a></span>";
					}
				}
				// 非IEはDOMを使用してリンク挿入
				else {
					// botパラメータを追加してアンカー作成
					var botAnchor = document.createElement("a");
					botAnchor.setAttribute("href",allAnchor[i].href + "&bot=1");
					var botAnchorText = document.createTextNode(allAnchor[i].textContent + " (bot)");
					
					// SSLで鍵アイコンを強制非表示
					var SSLplain = document.createElement("span");
					SSLplain.setAttribute("class","plainlinks");
					
					// リンク済み文字列の作成
					botAnchor.appendChild(botAnchorText);
					SSLplain.appendChild(botAnchor);
					allAnchor[i].parentNode.insertBefore(SSLplain,allAnchor[i].nextSibring);
					
					// ページの種類を判断してテキストのフォーマットを変更
					if(mw.config.get('wgAction') == "history") { // 履歴
						botAnchorSep = document.createTextNode(" | ");
						SSLplain.parentNode.insertBefore(botAnchorSep,SSLplain);
					}
					else { // 投稿記録、差分表示など
						botAnchorSep1 = document.createTextNode("[");
						SSLplain.parentNode.insertBefore(botAnchorSep1,SSLplain);
						botAnchorSep2 = document.createTextNode("]");
						SSLplain.parentNode.insertBefore(botAnchorSep2,SSLplain.nextSibling);
					}
				}
			}
		}
	}
}
$(addRvBotLink);