MediaWiki:Corrections.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**************
* corrections **************/
function close_corr_summary() { var summary = document.getElementById("corr_summary"); if(!summary) return; summary.innerHTML = ""; summary.parentNode.removeChild(summary); }
function scroll_to_correction(k){ var selectedPosX = 0; var selectedPosY = 0; var j=0;
var spanlist = get_elements_by_classname('coquille','span');
for(var i=0; i < spanlist.length; i++) { var item = spanlist[i]; j=j+1; if(j==k){ element=item; while(element != null){ selectedPosX += element.offsetLeft; selectedPosY += element.offsetTop; element = element.offsetParent; } window.scrollTo(selectedPosX,selectedPosY); } } }
function pr_popup(){ var corr_container = document.getElementById("corr_summary"); if(corr_container) { close_corr_summary(); return; } corr_container = document.createElement("div"); corr_container.setAttribute("id","corr_summary");
var content= document.getElementById("text"); var spanlist = document.getElementsByTagName("span"); if(!content) for(var i=0; i< spanlist.length; i++) { if( spanlist[i].className=="text") content=item; } if(content) { corr_container.style.cssText="position:relative;";
corr_container.innerHTML = "
"
content.insertBefore(corr_container,content.firstChild); } else { corr_container.style.cssText="position:fixed;min-width:16em;max-width:35em;max-height:35em;scroll:auto;right:0.5em;background:#ffffff;z-index:1;border:1px solid;padding:5px"; corr_container.innerHTML = self.corr_list; content = document.getElementById("bodyContent"); content.insertBefore(corr_container,content.firstChild); } }
function pr_typos() {
if( ! ( wgNamespaceNumber==0 || self.proofreadPageViewURL ) ) return;
var str = '
'+ ws_msg('corr_list') + " :
- ";
- '+'<a style=\"color:#000000;\" href=\"javascript:scroll_to_correction('+j+');\"> « '+w1+' #pre# '+ w2 + ' » →m« ' + w1 + ' #post# ' + w2 +' » </a> '; newline = newline.replace("#pre#",item.title); newline = newline.replace("#post#",item.innerHTML); str = str + newline; } str=str+'
var j=0; var spanlist = get_elements_by_classname('coquille','span'); for(var i=0; i< spanlist.length; i++) { var item = spanlist[i]; j=j+1; w1=w2=; if(item.previousSibling && item.previousSibling.data) { context1=item.previousSibling.data.split(' '); if(context1.length>1) w1 = context1[context1.length - 2]; } if(item.nextSibling && item.nextSibling.data) { context2=item.nextSibling.data.split(' '); if(context2.length>1) w2 = context2[1]; } //hidden "m" char is to avoid rtl languages firefox bug
var newline = ''
self.corr_list = str;
if(j) { var optlist = get_optlist();
optlist.innerHTML = optlist.innerHTML + "
"; cs = document.getElementById("corr-info"); if(cs) { if(j==1) cs.innerHTML = " <a href='javascript:pr_popup();'>" + ws_msg('corr_one'); else cs.innerHTML = " <a href='javascript:pr_popup();'>" + j + ws_msg('corr_many'); } } } addOnloadHook(pr_typos);