利用者:ASCIIw/Gadget-checkSignature-ex.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/*
署名忘れ防止スクリプト [[利用者:Cpro|cpro]] 2012年12月6日 (木) 07:39 (UTC)
以下のスクリプトはパブリックドメインとします。
改変・再配布を含め自由にお使いいただけますが、自己責任でお願いします。
These scripts below are under public domain.
You can freely use, modify or redistribute, at your own risk.
*/
//署名の文字列。必要に応じて各自で再定義
var SIGNATURE_STRING = "\u007E\u007E\u007E\u007E"; // \u007Eはチルダ
jQuery(function($) {
//すべてのノート名前空間と、Wikipedia名前空間の一部を対象とする
var ns = mw.config.get('wgNamespaceNumber');
if(ns % 2 === 0 && ns !== 4) return;
//Wikipedia名前空間で署名が必要なページのリスト
var pagenamesRequireSignature = [
"^井戸端($|/subj/)",
"^削除依頼/(?!ログ/)",
"^投稿ブロック依頼/",
"^保護(解除)?依頼$",
"^リダイレクトの削除依頼/\d+年\d+月$",
"^削除の復帰依頼($|/)",
"^チェックユーザー依頼/",
"^移動依頼$",
"^改名提案$",
"^管理者伝言板/(荒らし|投稿ブロック|保護ページ編集|その他の伝言)$",
"^利用者ページの削除依頼$",
"^著作権問題調査依頼$",
"^ガジェット/提案$",
"^編集フィルター/提案$"
];
//リストに含まれない場合は終了
if(ns == 4 && mw.config.get('wgTitle').search(pagenamesRequireSignature.join("|")) == -1) return;
var $saveButton = $('#wpSave');
if($saveButton.length === 0) return;
$saveButton.click(function(e) {
var text = $('#wpTextbox1').val();
var pos = text.indexOf(SIGNATURE_STRING);
var $minorEdit = $('#wpMinoredit');
if ($minorEdit.length && $minorEdit.prop('checked'))return;
$minorEdit = $('.ve-ui-mwSaveDialog-checkbox-wpMinoredit input:checkbox');
if ($minorEdit.length && $minorEdit.prop('checked'))return;
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(SIGNATURE_STRING, pos + SIGNATURE_STRING.length);
}
if(!window.confirm("署名が入力されていません。\nこのまま投稿しますか?"))
e.preventDefault();
});
});