MediaWiki:Gadget-iwlinks.js

Fra Wikipedia, den frie encyklopedi

Merk: Etter publisering vil det kanskje være nødvendig å slette mellomlageret i nettleseren din for å se endringene.

  • Firefox / Safari: Hold Shift mens du klikker på Oppdater, eller trykk enten Ctrl+F5 eller Ctrl+R (⌘+R på Mac)
  • Google Chrome: Trykk Ctrl+Shift+R (⌘+Shift+R på Mac)
  • Internet Explorer / Edge: Hold Ctrl mens du trykker på Oppdater eller trykk Ctrl+F5
  • Opera: Ttrykk Ctrl+F5.
(function() {
    if (!mw.config.get( 'wgIsArticle' )) return;
    if (mw.config.get( 'wgNamespaceNumber' ) != 0) return;
    if (!/^(view)$/.test(mw.config.get( 'wgAction' ))) return;
    var languages = {
        'nn' : {
            index: '//nn.wikipedia.org/wiki/',
            api: '//nn.wikipedia.org/w/api.php',
            name: 'nynorsk'
        },
        'sv' : {
            index: '//sv.wikipedia.org/wiki/',
            api: '//sv.wikipedia.org/w/api.php',
            name: 'svensk'
        },
        'da' : {
            index: '//da.wikipedia.org/wiki/',
            api: '//da.wikipedia.org/w/api.php',
            name: 'dansk'
        }
    };
    var combiner = ' og ';
    var query = {
        action: 'query',
        prop: 'info',
        format: 'json',
        maxage: 15*60,
        smaxage: 24*60*60
    };
    $(function(){
        var pagesize = parseInt($('#bodyContent .stubb .iwcheck').attr('title'));
        if (isNaN(pagesize)) return;
        var plang = $('#p-lang');
        for (var x in languages) {
            var title = plang.find('.interwiki-' + x + ' a').attr('title');
            if (!title) continue;
            $.ajax({
                url: languages[x].api,
                dataType: 'jsonp',
                data: jQuery.extend({'titles': title, requestid: x}, query),
                cache: true,
                context: document.body,
                success: function(data, textStatus){
                    if (textStatus && textStatus !== 'success') {
                        mw.log('Success, but with "' + textStatus + '"');
                        return;
                    }
                    languages[data.requestid].length = 0;
                    for (var x in data.query.pages)
                        if (languages[data.requestid].length < data.query.pages[x].length) {
                            languages[data.requestid].length = data.query.pages[x].length;
                            languages[data.requestid].title = data.query.pages[x].title;
                        }
                    var a = [];
                    for (var x in languages) {
                        if (1.1*pagesize < languages[x].length && pagesize+200 < languages[x].length) {
                            var html = '<a'
                            + ' href="' + languages[x].index + mw.util.wikiUrlencode(languages[x].title) + '"'
                            + ' title="' + languages[x].length + '"'
                            + '>' + languages[x].name + '</a>';
                            a.push(html);
                        }
                    }
                    if (a.length) {
                        var last = a.pop();
                        var first = a.join(', ');
                        $('#bodyContent .stubb .iwcheck')
                        .css('display', 'inline')
                        .find('.insert')
                        .html((0<first.length ? first + combiner : '') + last);
                    }
                }
            });
        }
    });
})();