「MediaWiki:Common.js」修訂間的差異
跳至導覽
跳至搜尋
小 (test) |
(test) |
||
行 1: | 行 1: | ||
/* 此 JavaScript 會用於使用者載入的每一個頁面。 */ | /* 此 JavaScript 會用於使用者載入的每一個頁面。 */ | ||
$(function(){ | |||
if($("#p-recentchanges").length == 0){ | if($("#p-recentchanges").length == 0){ | ||
return | return | ||
行 47: | 行 46: | ||
.attr("href", wikiURL + "/?curid=" + rc.pageid) | .attr("href", wikiURL + "/?curid=" + rc.pageid) | ||
.html(rc.title) | .html(rc.title) | ||
) | ) | ||
) | ) |
於 2017年8月14日 (一) 14:09 的修訂
/* 此 JavaScript 會用於使用者載入的每一個頁面。 */ $(function(){ if($("#p-recentchanges").length == 0){ return } var NAMESPACES = { // 所有 namespace (命名空間)清單 "分類":"1", } var storage = localStorage || {} var frequency = 20 // 更新頻率,以秒為單位 // 設為 20 表示每 20 秒更新一次 sidebar 清單 // 由於會用在數學除法上,所以請不要設置為 0 或數字以外的值 var numOfPageLoad = 20 // 要讀取多少最新變更 var wikiURL = location.origin // Wiki 的 URL var apiURL = location.origin + "/api.php" // Wiki 的 api 的 url // 詳見 特殊:版本#入口 URL var namespaceUsed = [ // 所有使用的 namespace (命名空間) NAMESPACES["分類"], ] function loadCallback(data){ var list = $("<ul>") $($("#p-recentchanges").find(".body, .pBody")[0]) .after( $("<div class='body'>").append(list) ) .after( $("<h3></h3>") .css({"font-style": "italic"}) .html("最新 " + numOfPageLoad + " 筆變動") ) for(var i in data){ var rc = data[i] list.append( $("<li>") .append( $("<a>") .attr("href", wikiURL + "/?curid=" + rc.pageid) .html(rc.title) ) ) } } var lastUpdateTime = parseInt(new Date().getTime() / 1000 / frequency) * 1000 * frequency if(storage.lastUpdateTime && storage.lastUpdateTime >= lastUpdateTime){ loadCallback(JSON.parse(storage.recentchanges)) return } $.ajax({ url: apiURL, data: { action: "query", list: "recentchanges", format: "json", rcshow: "!redirect", rcnamespace: namespaceUsed.join("|"), rclimit: numOfPageLoad, rctoponly: true // 只列出最新編輯 }, dataType: "json", success: function(data){ storage.lastUpdateTime = lastUpdateTime storage.recentchanges = JSON.stringify(data.query.recentchanges) loadCallback(data.query.recentchanges) } }) })