コンテンツにスキップ

利用者:Ikedat76/CheckSign.js

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

多くの WindowsLinux のブラウザ

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

Mac における Safari

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

Mac における ChromeFirefox

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

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

/*
	署名忘れ防止スクリプト [[利用者:Cpro|cpro]] 2007年12月12日 (水) 06:04 (UTC)
	
	以下のスクリプトはパブリックドメインとします。
	改変・再配布を含め自由にお使いいただけますが、自己責任でお願いします。
	These scripts below are under public domain.
	You can freely use, modify or redistribute, at your own risk.
 */

//署名の文字列。必要に応じて各自で再定義
var SIGNITURE_STRING = "\u007E\u007E\u007E\u007E"; // \u007Eはチルダ

function checkSigniture() {
	//すべてのノート名前空間と、Wikipedia名前空間を対象とする
	if(wgNamespaceNumber % 2 == 0 && wgNamespaceNumber != 4) return;
	
	//Wikipedia名前空間で署名が必要なページのリスト
	var pagenames_require_signiture = [
		"^井戸端($|/subj/)",
		"^削除依頼/(?!ログ/)",
		"^削除の復帰依頼",
		"^投稿ブロック依頼/(?!ログ/)"
	];
	//リストに含まれない場合は終了
	if(wgNamespaceNumber == 4 && wgTitle.search(pagenames_require_signiture.join("|")) == -1) return;
	
	var save_button = document.getElementById('wpSave');
	if(!save_button) return;
	
	function onsubmit_signiture_checker(e) {
		var textarea = document.getElementById('wpTextbox1');
		
		var pos = textarea.value.indexOf(SIGNITURE_STRING);
		while(pos != -1) {
			//nowikiされていないかチェック
			var nowiki = textarea.value.substring(0, pos).match(/<\/?nowiki>/ig);
			if(!nowiki) return; //nowikiが見つからなければ抜ける
			
			if(nowiki[nowiki.length - 1].toLowerCase() == '</nowiki>') return; //nowikiが閉じられていれば抜ける
			
			pos = textarea.value.indexOf(SIGNITURE_STRING, pos + SIGNITURE_STRING.length);
		}
		
		if(!window.confirm("署名が入力されていません。\nこのまま投稿しますか?")) {
			if (document.all && document.attachEvent) { // MSIE
				window.event.returnValue = false;
			} else {
				e.preventDefault();
			}
		}
	}
	
	if (document.all && document.attachEvent) { // MSIE
		save_button.attachEvent("onclick", onsubmit_signiture_checker)
	} else {
		save_button.addEventListener('click', onsubmit_signiture_checker, true);
	}
}
$(checkSigniture);