2016-10-01 66 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; 
}); 
}); 

注意,以前的版本只在模板內網頁中後命名空間;此修補程序適用於所有帶有紅色鏈接到不存在的模板的頁面。謝謝一打!