MediaWiki:Common.js: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 1,045: Line 1,045:
         setShowArticleRotationEffect();
         setShowArticleRotationEffect();
     });
     });
    function cacheBust(url) {
        return url + (url.indexOf('?') > -1 ? '&' : '?') + '_=' + Date.now();
    }


     // Kill any previous print handlers
     // Kill any previous print handlers
     $(document).off('click.print', '#print-button');
     $(document).off('click.print', '#print-button');


    // New: fetch rendered page HTML, extract .print-only, print via iframe
     $(document).on('click.print', '#print-button', function () {
     $(document).on('click.print', '#print-button', function () {
         var title = window.currentEntryTitle; // e.g. "090"
         var title = window.currentEntryTitle; // e.g. "090"
         if (!title) { console.warn('[print] no currentEntryTitle'); window.print(); return; }
         if (!title) { console.warn('[print] no currentEntryTitle'); window.print(); return; }


         var pageUrl = mw.util.getUrl(title); // respects /log/$1
         var pageUrl = mw.util.getUrl(title);
         console.log('[print] fetching page HTML:', pageUrl);
        var pageUrlFresh = cacheBust(pageUrl);                          // ⬅ cache bust
         console.log('[print] fetching page HTML:', pageUrlFresh);


         $.get(pageUrl).done(function (html) {
         $.get(pageUrlFresh).done(function (html) {
             var $tmp = $('<div>').html(html);
             var $tmp = $('<div>').html(html);
             var $print = $tmp.find('.print-only').first();
             var $print = $tmp.find('.print-only').first();
             console.log('[print] .print-only found:', $print.length);
             console.log('[print] .print-only found:', $print.length);
             if (!$print.length) { console.warn('[print] no .print-only found; fallback print'); window.print(); return; }
             if (!$print.length) { console.warn('[print] no .print-only found; fallback print'); window.print(); return; }


Line 1,074: Line 1,077:


             var doc = iframe.contentDocument || iframe.contentWindow.document;
             var doc = iframe.contentDocument || iframe.contentWindow.document;
             var printCssUrl = '/index.php?title=MediaWiki:Print.css&action=raw&ctype=text/css';
             var printCssUrl = '/index.php?title=MediaWiki:Print.css&action=raw&ctype=text/css';
            var printCssFresh = cacheBust(printCssUrl);                  // ⬅ cache bust


             doc.open();
             doc.open();
Line 1,080: Line 1,085:
             '<!doctype html><html><head><meta charset="utf-8">' +
             '<!doctype html><html><head><meta charset="utf-8">' +
             '<title>Print</title>' +
             '<title>Print</title>' +
             '<link rel="stylesheet" href="' + printCssUrl + '">' +
             '<link rel="stylesheet" href="' + printCssFresh + '">' +
             '</head><body>' + $print.prop('outerHTML') + '</body></html>'
             '</head><body>' + $print.prop('outerHTML') + '</body></html>'
             );
             );
Line 1,094: Line 1,099:
         });
         });
     });
     });




Navigation menu