利用者:組曲師/checksigniture.js
表示
< 利用者:組曲師
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/*
署名忘れ防止スクリプト [[利用者:Cpro|cpro]] 2012年12月6日 (木)(2年3か月と12日前) 4:39 pm (UTC+9)
以下のスクリプトはパブリックドメインとします。
改変・再配布を含め自由にお使いいただけますが、自己責任でお願いします。
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はチルダ
jQuery(function($) {
//すべてのノート名前空間と、Wikipedia名前空間の一部を対象とする
var ns = mw.config.get('wgNamespaceNumber');
if(ns % 2 == 0 && ns != 4) return;
//Wikipedia名前空間で署名が必要なページのリスト
var pagenamesRequireSigniture = [
"^井戸端($|/subj/)",
"^削除依頼/(?!ログ/)",
"^投稿ブロック依頼/",
"^保護(解除)?依頼$",
"^リダイレクトの削除依頼/\d+年\d+月$",
"^削除の復帰依頼($|/)",
"^チェックユーザー依頼/",
"^移動依頼$",
"^改名提案$",
"^管理者伝言板/(荒らし|投稿ブロック|保護ページ編集|その他の伝言)$",
"^利用者ページの削除依頼$",
"^利用者名変更依頼$",
"^著作権問題調査依頼$"
];
//リストに含まれない場合は終了
if(ns == 4 && mw.config.get('wgTitle').search(pagenamesRequireSigniture.join("|")) == -1) return;
var $saveButton = $('#wpSave');
if($saveButton.length == 0) return;
$saveButton.click(function(e) {
var text = $('#wpTextbox1').val();
var pos = text.indexOf(SIGNITURE_STRING);
while(pos != -1) {
//nowikiされていないかチェック
var nowiki = text.substring(0, pos).match(/<\/?nowiki>/ig);
if(!nowiki) return; //nowikiが見つからなければ抜ける
if(nowiki[nowiki.length - 1].toLowerCase() == '</nowiki>') return; //nowikiが閉じられていれば抜ける
pos = text.indexOf(SIGNITURE_STRING, pos + SIGNITURE_STRING.length);
}
if(!window.confirm("署名が入力されていません。\nこのまま投稿しますか?"))
e.preventDefault();
});
});