在MediaWiki网站上通过JS更改URL字符串

时间:2016-10-01 03:32:58

标签: javascript url mediawiki

所以......过去四天我一直在建立一个全新的维基。虽然一切都顺利进行,但我想处理一个特殊的修饰。

我在几个小时前创建了一个预装模板 - 维基百科,“模板启动器”。虽然我可以采用另一种方式创建输入表单,但我希望这样做,以便模板名称空间中的红色链接始终会导致此页面中的代码,只要有新的链接可以创建。那样:

  

http://rfm.referata.com/w/index.php?title=Template:Foo&action=edit&redlink=1(默认)

变为:

  

http://rfm.referata.com/w/index.php?title=Template:Foo&action=edit&redlink=1&preload=Template:Template+starter(目标)

通过添加到网站的Common.js和Mobile.js的JavaScript代码段。

没有遇到类似基于MW的例子,所以我想确保一切都是A-O.K。

3 个答案:

答案 0 :(得分:1)

this answer工作,您可以在Mediawiki:Common.js中执行以下操作:

$(function() {
    var preload = 'Template:Template_starter';
    $("body.ns-10 #mw-content-text a.new").attr('href', function(i, h) {
        // Maybe some links already have a preload parameter.
        if (h.indexOf('preload=') !== -1) {
            return h;
        }
        // All others get it appended.
        return h + "&preload=" + preload;
    });
});

请注意检查预先存在的'& preload ='并不是那么健壮。

答案 1 :(得分:0)

答案 2 :(得分:0)

改善你上次提供的内容,威尔逊先生:

$(function() {
var preload = 'Template:Template_starter';
$("a.new[href*='Template:']").attr('href', function(i, h) {
    // Maybe some links already have a preload parameter.
    if (h.indexOf('preload=') !== -1) {
        return h;
    }
    // All others get it appended.
    return h + "&preload=" + preload;
});
});

请注意,以前的版本仅在模板命名空间的页面中工作;此修复程序适用于具有指向不存在的模板的红色链接的所有页面。非常感谢!