Khác biệt giữa bản sửa đổi của “MediaWiki:Mobile.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ẻ: Lùi lại thủ công |
||
| Dòng 152: | Dòng 152: | ||
if (cnt >= 6) { dl[i].style.columns = 2 } | if (cnt >= 6) { dl[i].style.columns = 2 } | ||
} | } | ||
Phiên bản lúc 15:15, ngày 26 tháng 3 năm 2024
/* Tất cả mã JavaScript đặt ở đây sẽ được tải cho người sử dụng trang di động */
var ht = document.getElementsByClassName('Hani');
var hc = document.getElementsByClassName('notHani');
var mf = document.getElementsByClassName('missing message note');
var mb = document.getElementsByClassName('maybe');
function missingfont() {
event.stopPropagation();
if ( document.querySelector('.missing.message.popup') != null ) {
document.querySelector('.missing.message.popup').remove();
}
if ( document.querySelector('.maybe.message.popup') != null ) {
document.querySelector('.maybe.message.popup').remove();
}
const mfpopup = document. createElement('span');
mfpopup.innerHTML = '<span class="drawer drawer-container__drawer position-fixed text references-drawer visible">Đây là ký tự Hán cổ hoặc Nôm, không được hỗ trợ trên đa số các dòng điện thoại. Bạn cần chuyển sang sử dụng máy tính và tải thêm font Hán Nôm để hiển thị.</span>';
mfpopup.setAttribute('class','missing message popup');
document.body.appendChild(mfpopup);
}
for (i = 0; i < mf.length; i++) {
mf[i].setAttribute('onclick','missingfont()');
}
function maybe() {
event.stopPropagation();
if ( document.querySelector('.missing.message.popup') != null ) {
document.querySelector('.missing.message.popup').remove();
}
if ( document.querySelector('.maybe.message.popup') != null ) {
document.querySelector('.maybe.message.popup').remove();
}
const mbpopup = document. createElement('span');
mbpopup.innerHTML = '<span class="drawer drawer-container__drawer position-fixed text references-drawer visible">Có thể. Không có dẫn chứng chắc chắn.</span>';
mbpopup.setAttribute('class','maybe message popup');
document.body.appendChild(mbpopup);
}
for (i = 0; i < mb.length; i++) {
mb[i].setAttribute('onclick','maybe()');
}
function popup(a) {
event.stopPropagation();
if (a.getElementsByClassName('ttzoom')[0].style.visibility == 'hidden') {
a.getElementsByClassName('ttzoom')[0].style.visibility = 'visible';
a.getElementsByClassName('ttzoom')[0].style.opacity = '1';
} else {
a.getElementsByClassName('ttzoom')[0].style.visibility = 'hidden';
a.getElementsByClassName('ttzoom')[0].style.opacity = '0';
}
}
function popdown() {
for ( var i = 0; i < ht.length; i++ ) {
ht[i].getElementsByClassName('ttzoom')[0].style.visibility = 'hidden';
ht[i].getElementsByClassName('ttzoom')[0].style.opacity = '0';
}
for ( var i = 0; i < hc.length; i++ ) {
hc[i].getElementsByClassName('ttzoom')[0].style.visibility = 'hidden';
hc[i].getElementsByClassName('ttzoom')[0].style.opacity = '0';
}
if ( document.querySelector('.missing.message.popup') != null ) {
document.querySelector('.missing.message.popup').remove();
}
if ( document.querySelector('.maybe.message.popup') != null ) {
document.querySelector('.maybe.message.popup').remove();
}
}
if ( ht.length > 0 ) {
for ( var i = 0; i < ht.length; i++ ) {
ht[ i ].innerHTML = '<div class="tttext" onclick="popup(ht['+i+'])">' + ht[ i ].innerHTML + '<span class="ttzoom" style="visibility:hidden"> ' + ht[ i ].innerHTML + '</span></div>';
}
}
if ( hc.length > 0 ) {
for ( var i = 0; i < hc.length; i++ ) {
hc[ i ].innerHTML = '<div class="tttext" onclick="popup(hc['+i+'])">' + hc[ i ].innerHTML + '<span class="ttzoom" style="visibility:hidden"> ' + hc[ i ].innerHTML + '</span></div>';
}
}
document.addEventListener('click', popdown, false);
var rt = document.getElementsByTagName('rt');
if ( rt.length > 0 ) {
for ( var i = 0; i < rt.length; i++ ) {
if ( rt[i].innerText == '' ) { rt[i].style.display = 'none' };
}
}
var zoom = document.getElementsByClassName('ttzoom');
for ( var i = 0; i < zoom.length; i++ ) {
if ( zoom[i].getBoundingClientRect().right > document.documentElement.clientWidth ) {
zoom[i].style.left = 'unset';
zoom[i].style.right = '100%';
}
}
/* 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-');
};
/* Set citation title */
options = {childList: true}, observer = new MutationObserver(onChanged);
function onChanged(mutations) {
// for (var mutation of mutations) {
if (mutations[0].type === 'childList') {
setTimeout(function() {
if (document.querySelector('.drawer').querySelector('sup').innerText == '[a]') {
document.querySelector('.references-drawer__title').innerText = 'Ghi chú';
}
if (document.querySelector('.drawer').querySelector('sup').innerText == '[cg1]') {
document.querySelector('.references-drawer__title').innerText = 'Từ cùng gốc';
}
}, 500);
}
// }
}
observer.observe(document.body, options);
//Line-break arrows
var 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)">' + '→' + 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)">' + '→' + 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 {
entries[i].innerHTML += '<br><span style="display:inline-block;margin-left:calc(' + entry.length + 'em + 0.5ch);text-indent: calc(-1em - 0.5ch)">' + '→' + entry[entry.length-1].slice(0,entry[entry.length-1].lastIndexOf(' ')) + ' ' + entry[entry.length-1].slice(entry[entry.length-1].lastIndexOf(' ') + 1) + '</span>';
}
}
}
// Example columns
var dl = document.getElementsByTagName('dl');
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++) {
if (dd[j].innerText != '\n') { cnt++; } else { cnt = 0; dd[j].style.columnSpan = 'all'; dd[j-1].style.columnSpan = 'all'; };
if (dd[j].clientWidth > dl[i].clientWidth) {dd[j].style.setProperty('min-width','100%'); dd[j].style.setProperty('column-span','all')}
}
if (cnt >= 6) { dl[i].style.columns = 2 }
}