Khác biệt giữa bản sửa đổi của “MediaWiki:Common.js”
Không có tóm lược sửa đổi |
Không có tóm lược sửa đổi |
||
Dòng 225: | Dòng 225: | ||
} | } | ||
for (i = 0; i < mb.length; i++) { | for (i = 0; i < mb.length; i++) { | ||
mb[i].setAttribute('onclick','maybe( | if (mb[i].title == "Do TNTV tự phục dựng.") | ||
{ | |||
mb[i].setAttribute('onclick','maybe("x")') | |||
} | |||
else | |||
{ | |||
mb[i].setAttribute('onclick','maybe()') | |||
} | |||
} | } | ||
Phiên bản lúc 21:38, ngày 23 tháng 7 năm 2024
window.isMobile = /iphone|ipod|ipad|android|blackberry|opera mini|opera mobi|skyfire|maemo|windows phone|palm|iemobile|symbian|symbianos|fennec/i.test(navigator.userAgent.toLowerCase()); if (!window.isMobile) { // Display zoomed text var ht = document.getElementsByClassName('Hani'); if (ht.length > 0) { for (var i = 0; i < ht.length; i++) { ht[i].innerHTML = '<div class="tttext">' + ht[i].innerHTML + '<span class="ttzoom"> ' + ht[i].innerHTML + '</span></div>'; } } var hc = document.getElementsByClassName('notHani'); if (hc.length > 0) { for (var i = 0; i < hc.length; i++) { hc[i].innerHTML = '<div class="tttext">' + hc[i].innerHTML + '<span class="ttzoom"> ' + hc[i].innerHTML + '</span></div>'; } } // Zoomed text to left if overflow var ttzoom = document.querySelectorAll('.ttzoom') for (tt = 0; tt < ttzoom.length; tt++) { if (ttzoom[tt].getBoundingClientRect().right > window.innerWidth) { ttzoom[tt].style.left = '-800%' } } // Hide empty ruby text 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' }; } } // 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 } } // 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 * 3 + 10 && cognates[c].querySelectorAll('li').length > 7) { cognates[c].style.columnCount = 3; } else if (document.querySelector('.cognates .reference-text').clientWidth > widestwidth * 2 + 10 && cognates[c].querySelectorAll('li').length > 4) { cognates[c].style.columnCount = 2; } else { cognates[c].style.columnCount = 1; } } } cogcol(); window.addEventListener('resize', cogcol) // TEST for (i = 0; i < ht.length; i++) { if (ht[i].innerText == '\uFFFD') { ht[i].innerText = 'Missing font!'; } } for (i = 0; i < hc.length; i++) { if (hc[i].innerText == '\uFFFD') { hc[i].innerText = 'Missing font!'; } } 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('[title="Edit this page [alt-shift-e]"]').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) { 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 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)">' + '→' + 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)">' + '→' + entry[entry.length - 1] } } } } // Remove double spaces if (window.location.href.indexOf('MediaWiki') == -1) { document.getElementById('mw-content-text').innerHTML = document.getElementById('mw-content-text').innerHTML.replaceAll(' ', ' '); } // 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ỏ"); } } if (window.isMobile) { /* 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(e) { 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); console.log(e.target.title); } for (i = 0; i < mb.length; i++) { if (mb[i].title == "Do TNTV tự phục dựng.") { mb[i].setAttribute('onclick','maybe("x")') } else { mb[i].setAttribute('onclick','maybe()') } } function popup(a) { event.stopPropagation(); if (a.getElementsByClassName('ttzoom')[0].style.visibility == 'hidden') { 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'; } 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/2) {dd[j].style.setProperty('min-width','100%'); dd[j].style.setProperty('column-span','all')} } if (cnt >= 6) { dl[i].style.columns = 2 } } }