利用者:Ikedat76/CheckSign.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ 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);