Advertisement
Guest User

Fix for PageNumbets.js dropping the last page number

a guest
Sep 9th, 2011
546
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function init_page_numbers() {
  2.  
  3.     if(document.URL.indexOf("match=") > 0 ) return;
  4.    
  5.     //create a dummy pagenumber at the end to provide the end position
  6.     //because this is often not found correctly, especially with gaps in the page ranges
  7.     $('<span id="dummy-pagenumber" class="pagenum"></span>').insertBefore('#catlinks');
  8.  
  9.     self.pagenum_ml = get_elements_by_classname( 'pagenum', 'span' );
  10.    
  11.     if( self.proofreadpage_source_href && self.pagenum_ml.length>1){
  12.        
  13.         var optlist = get_optlist();
  14.         mw.util.addPortletLink ('p-displayOptions', 'javascript:hide_pagenumbers();', ws_msg('hide_page_numbers'), 'option-pageNumbers', '', 'n' );
  15.      
  16.         var cs = self.pagenum_ml[0].parentNode.parentNode;
  17.         //this happens for empty pages ; check if there are other cases
  18.         if(cs.tagName=="P") cs = cs.parentNode;
  19.      
  20.         /* Measure the line height and the height of an empty span */
  21.         var ct = document.createElement("div");
  22.         ct.setAttribute("id","my-ct");
  23.         cs.insertBefore(ct,cs.firstChild);
  24.         var ss = document.createElement("div"); /*we need a div, not a span*/
  25.         ss.innerHTML="&nbsp;<span></span>";     /*empty span following some text */
  26.         ss.setAttribute("id","my-ss");
  27.         cs.appendChild(ss);
  28.      
  29.         /* container for page numbers */
  30.         var div_pagenums = document.createElement("div");
  31.         div_pagenums.setAttribute("id","ct-pagenums");
  32.         /* insert the container in the grandparent node, or parent, or self */
  33.         var mcs = document.getElementById("text-wrap");
  34.         if(!mcs) {
  35.           if(cs.parentNode.parentNode.style.position=="relative") mcs = cs.parentNode.parentNode;
  36.           else if(cs.parentNode.style.position=="relative") mcs = cs.parentNode;
  37.           else { mcs = cs; mcs.style.position = "relative"; }
  38.         }
  39.         mcs.appendChild(div_pagenums);
  40.      
  41.         /* container for the highlight */
  42.         var div_popup = document.createElement("div");
  43.         var opacity="background-color:#000000;opacity:0.2;-ms-filter:alpha(opacity=20);filter:alpha(opacity=20);";
  44.         div_popup.setAttribute("id","ct-popup");
  45.         div_popup.style.cssText = "position:absolute;width:100%;";
  46.         div_popup.innerHTML = "<div style=\""+opacity+"float:right;width:0px;\" >&nbsp;</div>"
  47.           +"<div style=\""+opacity+"width:100%;height:0px;clear:both;\"></div>"
  48.           +"<div style=\""+opacity+"width:0px;\">&nbsp;</div>";
  49.         cs.appendChild(div_popup);
  50.      
  51.         refresh_pagenumbers();
  52.     }
  53.    
  54.     $('#dummy-pagenumber').remove(); //don't leave this hanging around to confuse other scripts
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement