MediaWiki:Common.js
Chú ý: Sau khi lưu trang này, phải xóa bộ nhớ đệm (cache) của trình duyệt để những thay đổi hiện ra
- Firefox / Safari: Nhấn giữ phím Shift trong khi nhấn Tải lại (Reload), hoặc nhấn tổ hợp Ctrl-F5 hay Ctrl-R (⌘R trên Mac)
- Google Chrome: Nhấn tổ hợp Ctrl-Shift-R (⇧⌘R trên Mac)
- Internet Explorer / Edge: Nhấn giữ phím Ctrl trong khi nhấn Làm tươi (Refresh), hoặc nhấn tổ hợp Ctrl-F5
- Opera: Nhấn tổ hợp Ctrl-F5.
mw.loader.using( ['mediawiki.util', 'jquery.client'], function () {
/* Đầu hàm gọi lại mw.loader.using() */
/* Rút gon danh sách ngôn ngữ trong Trang Chính */
/* [[Wiktionary:Trang Chính]] */
mw.loader.using("mediawiki.util", function(){
// Ẩn tiêu đề và "Đổi hướng từ" (maybe we should keep the redirected from so's people update their bookmarks ;)
// Broken in IE!
if (mw.config.get('wgIsMainPage') && !(mw.config.get('wgAction') === 'view' || mw.config.get('wgAction') === 'submit')) {
mw.util.addCSS('.firstHeading { display: block !important; }');
mw.util.addCSS('#contentSub { display: inline !important; }');
}
if (mw.config.get('wgIsMainPage')) {
$(function(){
mw.util.addPortletLink('p-lang', '//meta.wikimedia.org/wiki/Wiktionary#List_of_Wiktionaries',
'Danh sách đầy đủ', 'interwiki-completelist', 'Danh sách đầy đủ các phiên bản Wiktionary');
});
}
});
/**
* Đổi hướng User:Name/skin.js và skin.css đến các trang giao diện hiện tại
* (trừ khi trang 'skin' thực sự tồn tại)
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js
* @rev: 2
*/
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );
/* Make sure there was a part before and after the slash
and that the latter is 'skin.js' or 'skin.css' */
if ( titleParts.length == 2 ) {
var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );
if ( titleParts.slice( -1 ) == 'skin.js' ) {
window.location.href = mw.util.getUrl( userSkinPage + '.js' );
} else if ( titleParts.slice( -1 ) == 'skin.css' ) {
window.location.href = mw.util.getUrl( userSkinPage + '.css' );
}
}
}
/**
* Map addPortletLink sang mw.util
* @deprecated: Dùng mw.util.addPortletLink thay thế.
*/
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Dùng mw.util.addPortletLink thay thế' );
/**
* Trích xuất một tham số URL từ URL hiện tại
* @deprecated: Dùng mw.util.getParamValue với lối thoát thích hợp
*/
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Dùng mw.util.getParamValue thay thế' );
/**
* Kiểm tra nếu một phần tử có một lớp nhất định
* @deprecated: Use $(element).hasClass() instead.
*/
mw.log.deprecate( window, 'hasClass', function ( element, className ) {
return $( element ).hasClass( className );
}, 'Dùng jQuery.hasClass() thay thế' );
/**
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
* @rev 6
*/
var extraCSS = mw.util.getParamValue( 'withCSS' ),
extraJS = mw.util.getParamValue( 'withJS' );
if ( extraCSS ) {
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );
} else {
mw.notify( 'Chỉ cho phép các trang từ không gian tên MediaWiki', { title: 'Giá trị withCSS không hợp lệ' } );
}
}
if ( extraJS ) {
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );
} else {
mw.notify( 'Chỉ cho phép các trang từ không gian tên MediaWiki.', { title: 'Giá trị withJS không hợp lệ' } );
}
}
/* Chuyển hướng liên kết "Tải lên tập tin" đến Wikimedia Commons.
*/
mw.hook("wikipage.content").add(function() {
$("#t-upload a").attr("href", mw.util.getUrl("Commons:Special:UploadWizard"));
});
/**
* ***** Mã cho Wiktionary *****
* ***** Kiểm tra trước khi xóa *****
*/
/**
* Chức năng: Chắc chắn lấy vị trí ký tự bao gồm các ký tự không phải BMP.
* (c) 2012 Steven Levithan <http://slevithan.com/>
* MIT license
*/
if (!String.prototype.codePointAt) {
String.prototype.codePointAt = function (pos) {
pos = isNaN(pos) ? 0 : pos;
var str = String(this),
code = str.charCodeAt(pos),
next = str.charCodeAt(pos + 1);
// If a surrogate pair
if (0xD800 <= code && code <= 0xDBFF && 0xDC00 <= next && next <= 0xDFFF) {
return ((code - 0xD800) * 0x400) + (next - 0xDC00) + 0x10000;
}
return code;
};
}
/**
* Áp dụng phông chữ và thẻ ngôn ngữ phù hợp vào các mục trong danh sách mục từ
* trên trang thể loại, miễn là thể loại có gắn [[Bản mẫu:catfix]].
*/
mw.hook("wikipage.content").add(function () {
if (mw.config.get("wgNamespaceNumber") != 14) return;
var catfix = $("#catfix");
if (!catfix.length) return;
var scriptTag = catfix.children().first().text("");
if (!scriptTag.length) scriptTag = $("<span></span>");
var anchor = encodeURIComponent(catfix.data("catfix-anchor"))
.replace(/%20/g, "_").replace(/%/g, ".");
var ranges = catfix.data("catfix-script-ranges");
if (ranges) {
ranges = ranges.split(" ");
for (var i = 0; i < ranges.length; i++) ranges[i] = parseInt(ranges[i]);
}
var isInScript = function (ch) {
if (!ranges || !ranges.length) return true;
for (var i = 0; i < ranges.length; i += 2) {
if (ch >= ranges[i] && ch <= ranges[i + 1]) return true;
}
return false;
};
$("#mw-pages > .mw-content-ltr h3").each(function (idx) {
var text = $(this).text();
var firstCh = text.codePointAt(0);
if (!isInScript(firstCh)) return;
var firstChWidth = firstCh < 0xFFFF ? 1 : 2;
$(this).text(text.substring(firstChWidth))
.prepend(scriptTag.clone().text(text.substring(0, firstChWidth)));
});
$("#mw-pages > .mw-content-ltr li a").wrap(function (idx) {
if (isInScript($(this).text().codePointAt(0))) return scriptTag;
}).each(function (idx) {
var href = $(this).attr("href");
$(this).attr("href", href + "#" + anchor);
});
});
// == Tiêu đề không được hỗ trợ ==
// [[Special:PrefixIndex/Tiêu đề không được hỗ trợ]]
// [[MediaWiki:UnsupportedTitles.js]]
if ((mw.config.get('wgAction') === 'view' && /^(?:Talk:)?Tiêu_đề_không_được_hỗ_trợ\//.test(mw.config.get('wgPageName')))
|| mw.config.get('wgCanonicalSpecialPageName') == 'Badtitle')
mw.loader.using('mediawiki.util', function(){importScript("MediaWiki:UnsupportedTitles.js");});
if (mw.config.get("wgTitle").indexOf("by language") != -1)
$("a.CategoryTreeLabelCategory").text(
function(index, content) {
return content.replace(
/^Requests for (?:verification|deletion|cleanup) in (.+) entries$/,
"$1"
);
}
);
/* == Make it easy to update language name-to-code and code-to-name data modules == */
// This regex will always match.
if (['Module:languages/code_to_canonical_name', 'Module:languages/canonical_names']
.indexOf(mw.config.get('wgPageName').match(/^[^\/]*(?:\/[^\/]+)?/)[0]) !== -1)
importScript('MediaWiki:UpdateLanguageNameAndCode.js');
/**
* ***** Hết mã cho Wiktionary *****
* ***** Kiểm tra trước khi xóa *****
*/
/* Kết hàm gọi lại mw.loader.using() */
} );
/* ĐỪNG THÊM MÃ DƯỚI DÒNG NÀY */