利用者:Mage Whopper/postsizecheck-script.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
/*
投稿時サイズチェッカー
メイン名前空間への投稿時、ページが短か過ぎるともっと調べてから投稿するように促します
minsizeに指定した値以下の時確認
[[User:Cpro/checksigniture.js]]を参考にさせていただきました。
ライセンスはパブリックドメインとします。
These scripts below are under public domain.
You can freely use, modify or redistribute, at your own risk.
読み込む側でpsg_minsize を指定すると、閾値になります。
例)var psg_minsize=2000; //閾値2kB
*/
function on_post_size_check(){
if(wgNamespaceNumber!=0)return;//mainのみ
if(!((wgAction=="edit")||(wgAction=="submit")))return;//編集時のみ
if(typeof psg_minsize == 'undefined'){ps_minsize=1000;}else{ps_minsize=psg_minsize;}
//if(wgArticleId!=0)return;//新規のみ
var save_button=document.getElementById('wpSave');
if(!save_button)return;
if(document.all && document.attachEvent){//MSIE
save_button.attachEvent("onclick",onpost_size_warn);
}else{
save_button.addEventListener('click',onpost_size_warn,true);
}
function onpost_size_warn(e){
var s=document.getElementById('wpTextbox1').value;
s=s.replace(/\n+$/,'');//末尾の改行除去
var t=s.replace(/<!--.*?-->/g,'');
var cm='';
if(s.length!=t.length)cm="\nコメント外には "+t.length+" 文字("+utf8size(t)+"バイト)\n";
if(utf8size(t)<ps_minsize){
var str="投稿しようとしているテキストは "+s.length+" 文字("+utf8size(s)+"バイト)"+cm+"しかありません。\nこのまま投稿しますか?";
if(1){
str+="\nアラート閾値:"+ps_minsize+" バイト";
}
if(!window.confirm(str)){
if(document.all && document.attachEvent){//MSIE
window.event.returnValue=false;
}else{
e.preventDefault();
}
}
}
}
function utf8size(s){//PHP-UTF8でのサイズ計算
var c=0;var i,n,m;
for(i=0;i<s.length;i++){
n=encodeURI(s.charAt(i));
if(n.length>2){
m=n.replace(/%/g,'');
c+=(m.length/2);
}else{
c++;
}
}
return c;
}
}
$(on_post_size_check);