2016-10-01 53 views
2

所以...我在过去的四天里创建了一个全新的wiki。虽然一切都很顺利,但我想要处理一些特殊的修改。在MediaWiki站点上通过JS更改URL字符串

几个小时前,我创建了一个预加载模板àla Wikipedia,“模板启动器”。尽管我可以用另一种方式创建一个输入表单,但我希望这样做的目的是使模板名称空间中的红色链接总是可以从此页面导出代码,只要新的代码可以创建即可。因此:

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(目标)

通过一段JavaScript代码片段的方式添加到网站中的Common.js和Mobile.js。

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

回答

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; 
    }); 
}); 

注意,对于预先存在的检查“&预紧力=”是不是所有的稳健。

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; 
}); 
}); 

注意,以前的版本只在模板内网页中后命名空间;此修补程序适用于所有带有红色链接到不存在的模板的页面。谢谢一打!