Khác biệt giữa bản sửa đổi của “MediaWiki:Common.js”
Giao diện
Không có tóm lược sửa đổi Thẻ: Đã bị lùi lại |
Không có tóm lược sửa đổi Thẻ: Đã bị lùi lại |
||
| Dòng 1: | Dòng 1: | ||
// | // Example columns | ||
function excol() { | |||
var dl = document.getElementsByTagName('dl'); | |||
var maxwidth = 0; | |||
var cnt = 0; | |||
for (var i = 0; i < dl.length; i++) { | |||
cnt = 0; | |||
var dd = dl[i].getElementsByTagName('dd'); | |||
for (j = 0; j < dd.length; j++) { | |||
dd[j].style.setProperty('min-width', 'max-content'); | |||
dd.style.setProperty('min-width', 'max-content'); | dd[j].style.setProperty('column-span', 'unset'); | ||
dd.style.setProperty('column-span', 'unset'); | if (dd[j].clientWidth + parseFloat(window.getComputedStyle(dd[j]).marginLeft) > dl[i].clientWidth / 2) { | ||
dd[j].style.setProperty('min-width', 'calc(100% - 1.6em)'); | |||
dd[j].style.setProperty('column-span', 'all'); | |||
} | |||
if (maxwidth < dd[j].clientWidth && dd[j].style.minWidth != 'calc(100% - 1.6em)') { | |||
dd.style.setProperty('min-width', 'calc(100% - 1.6em)'); | maxwidth = dd[j].clientWidth + parseFloat(window.getComputedStyle(dd[j]).marginLeft) + 5; | ||
dd.style.setProperty('column-span', 'all'); | |||
} | |||
} | } | ||
console.log(maxwidth); | |||
cnt++; | |||
} | } | ||
if (cnt >= 6 && maxwidth * 3 < dl[i].clientWidth) { | |||
dl[i].style.columns = 3 | |||
} else if (cnt >= 6 && maxwidth * 2 < dl[i].clientWidth && maxwidth * 3 > dl[i].clientWidth) { | |||
dl[i].style.columns = 2 | |||
if ( | |||
} else if ( | |||
} else { | } else { | ||
dl[i].style.columns = 1 | |||
} | |||
} | |||
} | } | ||
} | } | ||
// Cognates columns | |||
function cogcol() { | |||
var cognates = document.querySelectorAll('.cognates ul'); | |||
for (var c = 0; c < cognates.length; c++) { | |||
var widest = null; | |||
var widestwidth = 0; | |||
var coglis = cognates[c].querySelectorAll('li'); | |||
for (var l = 0; l < coglis.length; l++) { | |||
if (widest == null) { | |||
widestwidth = coglis[l].clientWidth; | |||
widest = l; | |||
} else if (widestwidth < coglis[l].clientWidth) { | |||
widestwidth = coglis[l].clientWidth; | |||
widest = l; | |||
} | } | ||
} | } | ||
if (document.querySelector('.cognates .reference-text').clientWidth > (widestwidth + parseFloat(window.getComputedStyle(document.querySelector('.reference-text ol'))['marginLeft'])) * 3 + 10 && cognates[c].querySelectorAll('li').length > 7) { | |||
if ( | cognates[c].style.columnCount = 3; | ||
} else if (document.querySelector('.cognates .reference-text').clientWidth > (widestwidth + parseFloat(window.getComputedStyle(document.querySelector('.reference-text ol'))['marginLeft'])) * 2 + 10 && cognates[c].querySelectorAll('li').length > 4) { | |||
cognates[c].style.columnCount = 2; | |||
} else { | |||
cognates[c].style.columnCount = 1; | |||
} | } | ||
}); | } | ||
} | } | ||
excol(); | |||
cogcol(); | |||
window.addEventListener('resize', () => { | |||
cogcol(); | |||
excol(); | |||
}) | |||
if (document.querySelector('.notelistalpha') != null && document.querySelector('.notelistalpha').childElementCount < 2) { document.querySelector('.notelistalpha').style.visibility = 'hidden' }; | |||
// Wikipedia links | |||
var wlinks = document.getElementsByClassName('extiw'); | |||
for (var i = 0; i < wlinks.length; i++) { | |||
wlinks[i].title = wlinks[i].title.replace('wikipedia:vi:', '') | |||
} | |||
// CTRL + shortcuts | |||
document.addEventListener("keydown", function(e) { | |||
if (e.key === 's' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { | |||
e.preventDefault(); | |||
document.querySelector('[value="Save changes"]').click(); | |||
}; | |||
if (e.key === 'p' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { | |||
e.preventDefault(); | |||
document.querySelector('[value="Show preview"]').click(); | |||
}; | |||
if (e.key === 'e' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { | |||
e.preventDefault(); | |||
document.querySelector('a[accesskey="e"]').click(); | |||
}; | |||
if (e.key === 'r' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { | |||
e.preventDefault(); | |||
document.querySelector('input[accesskey="r"]').click(); | |||
}; | }; | ||
if (e.key === 'g' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) { | |||
e.preventDefault(); | |||
document.querySelector('input[accesskey="g"]').click(); | |||
}; | }; | ||
}, false); | |||
// Remove space before citation | |||
var citerefs = document.querySelectorAll('[id^="cite_ref-"]'); | |||
if (citerefs.length > 0) { | |||
for (var i = 0; i < citerefs.length; i++) { | |||
if ( | if (citerefs[i].childNodes[0].textContent == ' ') { | ||
citerefs[i].childNodes[0].textContent = ''; | |||
} | } | ||
} | } | ||
} | citerefs[0].parentElement.innerHTML = citerefs[0].parentElement.innerHTML.replaceAll(' <sup id="cite_ref-', '<sup id="cite_ref-'); | ||
} | |||
// | // Line-break arrows | ||
var entries = ''; | |||
if (window.location.href.search('index.php') < 0 && window.location.href.lastIndexOf(':') == 5) { | |||
entries = document.querySelector('ol').querySelectorAll('li'); | |||
for (i = 0; i < entries.length; i++) { | |||
if ( | if (entries[i].innerHTML.match(/> →/g) != null) { | ||
var entry = entries[i].innerHTML.split('> →'); | |||
entries[i].innerHTML = ''; | |||
entries[i].innerHTML += entry[0] + 'b>'; | |||
for (j = 1; j < entry.length - 1; j++) { | |||
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + (j + 1) + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[j] + '></span>'; | |||
} | |||
if (entry[entry.length - 1].search('dl') > -1 && entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')).slice(entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')).length - 2) != '<a') { | |||
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')) + ' ' + entry[entry.length - 1].split('<dl')[0].slice(entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ') + 1) + '</span><dl' + entry[entry.length - 1].split('<dl')[1]; | |||
} else if (entry[entry.length - 1].slice(entry[entry.length - 1].lastIndexOf(' ') - 2, entry[entry.length - 1].lastIndexOf(' ')) != '<a') { | |||
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1].slice(0, entry[entry.length - 1].lastIndexOf(' ')) + ' ' + entry[entry.length - 1].slice(entry[entry.length - 1].lastIndexOf(' ') + 1) + '</span>'; | |||
} else { | |||
entries[0].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1] | |||
} | |||
. | |||
} | } | ||
} | } | ||
} | |||
// Remove double spaces & replace Word Connectors * replace → arrow | |||
if (window.location.href.indexOf('MediaWiki') == -1) { | |||
document.getElementById('mw-content-text').innerHTML = document.getElementById('mw-content-text').innerHTML.replaceAll(' ', ' '); | |||
} | |||
if (window.location.href.indexOf('index') == -1) { | |||
document.getElementById('mw-content-text').innerHTML = document.getElementById('mw-content-text').innerHTML.replaceAll(' > ', '<con> > </con>').replaceAll(' ~ ', '<con> ~ </con>'); | |||
} | |||
// Zoom Videos | |||
var zoombtn = document.getElementsByClassName("enlarge"); | |||
for (var i = 0; i < zoombtn.length; i++) { | |||
zoombtn[i].setAttribute("onclick", "enlarge(" + i + ")"); | |||
zoombtn[i].setAttribute("title", "Phóng to"); | |||
} | |||
var video = document.querySelectorAll('[title="Play video"]'); | |||
} | function enlarge(vid) { | ||
video[vid].width *= 2; | |||
video[vid].height *= 2; | |||
video[vid].style.setProperty("height", video[vid].height + "px"); | |||
video[vid].style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.style.setProperty("height", video[vid].height + "px"); | |||
video[vid].parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
zoombtn[vid].setAttribute("onclick", "smaller(" + vid + ")"); | |||
zoombtn[vid].setAttribute("title", "Thu nhỏ"); | |||
} | |||
function smaller(vid) { | |||
video[vid].width /= 2; | |||
video[vid].height /= 2; | |||
video[vid].style.setProperty("height", video[vid].height + "px"); | |||
video[vid].style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.style.setProperty("height", video[vid].height + "px"); | |||
video[vid].parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px"); | |||
zoombtn[vid].setAttribute("onclick", "enlarge(" + vid + ")"); | |||
zoombtn[vid].setAttribute("title", "Thu nhỏ"); | |||
} | } | ||
Phiên bản lúc 09:23, ngày 23 tháng 4 năm 2026
// Example columns
function excol() {
var dl = document.getElementsByTagName('dl');
var maxwidth = 0;
var cnt = 0;
for (var i = 0; i < dl.length; i++) {
cnt = 0;
var dd = dl[i].getElementsByTagName('dd');
for (j = 0; j < dd.length; j++) {
dd[j].style.setProperty('min-width', 'max-content');
dd[j].style.setProperty('column-span', 'unset');
if (dd[j].clientWidth + parseFloat(window.getComputedStyle(dd[j]).marginLeft) > dl[i].clientWidth / 2) {
dd[j].style.setProperty('min-width', 'calc(100% - 1.6em)');
dd[j].style.setProperty('column-span', 'all');
}
if (maxwidth < dd[j].clientWidth && dd[j].style.minWidth != 'calc(100% - 1.6em)') {
maxwidth = dd[j].clientWidth + parseFloat(window.getComputedStyle(dd[j]).marginLeft) + 5;
}
console.log(maxwidth);
cnt++;
}
if (cnt >= 6 && maxwidth * 3 < dl[i].clientWidth) {
dl[i].style.columns = 3
} else if (cnt >= 6 && maxwidth * 2 < dl[i].clientWidth && maxwidth * 3 > dl[i].clientWidth) {
dl[i].style.columns = 2
} else {
dl[i].style.columns = 1
}
}
}
// Cognates columns
function cogcol() {
var cognates = document.querySelectorAll('.cognates ul');
for (var c = 0; c < cognates.length; c++) {
var widest = null;
var widestwidth = 0;
var coglis = cognates[c].querySelectorAll('li');
for (var l = 0; l < coglis.length; l++) {
if (widest == null) {
widestwidth = coglis[l].clientWidth;
widest = l;
} else if (widestwidth < coglis[l].clientWidth) {
widestwidth = coglis[l].clientWidth;
widest = l;
}
}
if (document.querySelector('.cognates .reference-text').clientWidth > (widestwidth + parseFloat(window.getComputedStyle(document.querySelector('.reference-text ol'))['marginLeft'])) * 3 + 10 && cognates[c].querySelectorAll('li').length > 7) {
cognates[c].style.columnCount = 3;
} else if (document.querySelector('.cognates .reference-text').clientWidth > (widestwidth + parseFloat(window.getComputedStyle(document.querySelector('.reference-text ol'))['marginLeft'])) * 2 + 10 && cognates[c].querySelectorAll('li').length > 4) {
cognates[c].style.columnCount = 2;
} else {
cognates[c].style.columnCount = 1;
}
}
}
excol();
cogcol();
window.addEventListener('resize', () => {
cogcol();
excol();
})
if (document.querySelector('.notelistalpha') != null && document.querySelector('.notelistalpha').childElementCount < 2) { document.querySelector('.notelistalpha').style.visibility = 'hidden' };
// Wikipedia links
var wlinks = document.getElementsByClassName('extiw');
for (var i = 0; i < wlinks.length; i++) {
wlinks[i].title = wlinks[i].title.replace('wikipedia:vi:', '')
}
// CTRL + shortcuts
document.addEventListener("keydown", function(e) {
if (e.key === 's' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
document.querySelector('[value="Save changes"]').click();
};
if (e.key === 'p' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
document.querySelector('[value="Show preview"]').click();
};
if (e.key === 'e' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
document.querySelector('a[accesskey="e"]').click();
};
if (e.key === 'r' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
document.querySelector('input[accesskey="r"]').click();
};
if (e.key === 'g' && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
e.preventDefault();
document.querySelector('input[accesskey="g"]').click();
};
}, false);
// Remove space before citation
var citerefs = document.querySelectorAll('[id^="cite_ref-"]');
if (citerefs.length > 0) {
for (var i = 0; i < citerefs.length; i++) {
if (citerefs[i].childNodes[0].textContent == ' ') {
citerefs[i].childNodes[0].textContent = '';
}
}
citerefs[0].parentElement.innerHTML = citerefs[0].parentElement.innerHTML.replaceAll(' <sup id="cite_ref-', '<sup id="cite_ref-');
}
// Line-break arrows
var entries = '';
if (window.location.href.search('index.php') < 0 && window.location.href.lastIndexOf(':') == 5) {
entries = document.querySelector('ol').querySelectorAll('li');
for (i = 0; i < entries.length; i++) {
if (entries[i].innerHTML.match(/> →/g) != null) {
var entry = entries[i].innerHTML.split('> →');
entries[i].innerHTML = '';
entries[i].innerHTML += entry[0] + 'b>';
for (j = 1; j < entry.length - 1; j++) {
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + (j + 1) + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[j] + '></span>';
}
if (entry[entry.length - 1].search('dl') > -1 && entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')).slice(entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')).length - 2) != '<a') {
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1].split('<dl')[0].slice(0, entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ')) + ' ' + entry[entry.length - 1].split('<dl')[0].slice(entry[entry.length - 1].split('<dl')[0].lastIndexOf(' ') + 1) + '</span><dl' + entry[entry.length - 1].split('<dl')[1];
} else if (entry[entry.length - 1].slice(entry[entry.length - 1].lastIndexOf(' ') - 2, entry[entry.length - 1].lastIndexOf(' ')) != '<a') {
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1].slice(0, entry[entry.length - 1].lastIndexOf(' ')) + ' ' + entry[entry.length - 1].slice(entry[entry.length - 1].lastIndexOf(' ') + 1) + '</span>';
} else {
entries[0].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '<arrow>↳ </arrow>' + entry[entry.length - 1]
}
}
}
}
// Remove double spaces & replace Word Connectors * replace → arrow
if (window.location.href.indexOf('MediaWiki') == -1) {
document.getElementById('mw-content-text').innerHTML = document.getElementById('mw-content-text').innerHTML.replaceAll(' ', ' ');
}
if (window.location.href.indexOf('index') == -1) {
document.getElementById('mw-content-text').innerHTML = document.getElementById('mw-content-text').innerHTML.replaceAll(' > ', '<con> > </con>').replaceAll(' ~ ', '<con> ~ </con>');
}
// Zoom Videos
var zoombtn = document.getElementsByClassName("enlarge");
for (var i = 0; i < zoombtn.length; i++) {
zoombtn[i].setAttribute("onclick", "enlarge(" + i + ")");
zoombtn[i].setAttribute("title", "Phóng to");
}
var video = document.querySelectorAll('[title="Play video"]');
function enlarge(vid) {
video[vid].width *= 2;
video[vid].height *= 2;
video[vid].style.setProperty("height", video[vid].height + "px");
video[vid].style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.style.setProperty("height", video[vid].height + "px");
video[vid].parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
zoombtn[vid].setAttribute("onclick", "smaller(" + vid + ")");
zoombtn[vid].setAttribute("title", "Thu nhỏ");
}
function smaller(vid) {
video[vid].width /= 2;
video[vid].height /= 2;
video[vid].style.setProperty("height", video[vid].height + "px");
video[vid].style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.style.setProperty("height", video[vid].height + "px");
video[vid].parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
video[vid].parentElement.parentElement.parentElement.style.setProperty("width", video[vid].width + "px");
zoombtn[vid].setAttribute("onclick", "enlarge(" + vid + ")");
zoombtn[vid].setAttribute("title", "Thu nhỏ");
}