User:Liouxiao/test.js
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
//!!!! SECURITY PROBLEM
/*
//adjust vertical paragraph styles
var backup_content = "";
var optimized_content = "";
var optimized_done = false;
var target_div;
var isMobile = (document.getElementById('footer-places-mobileview') === null) ? true : false;
var u_agent = navigator.userAgent.toLowerCase();
var isFirefox = (u_agent.indexOf('firefox') !== -1) ? true : false;
var isChrome = (u_agent.indexOf("applewebkit/") !== -1 && u_agent.indexOf("khtml") > -1) ? true : false;
var opening_quote_margin_left = "-9px;";
var line_height = "1.5em";
if (isFirefox) {
opening_quote_margin_left = "-5px;";
line_height = "1.4em";
} else if (isChrome) {
line_height = "1.48em";
}
var paragraphs = document.querySelectorAll("div#mw-content-text div.mw-parser-output");
if (paragraphs.length > 0) {
backup_content = paragraphs[0].innerHTML;
if (backup_content.indexOf('<div style="writing-mode:vertical-rl;') !== -1) {
var ppq = document.querySelectorAll("div.prp-page-qualityheader");
if (ppq.length > 0) {
target_div = paragraphs[0];
var cb = document.getElementById("optimize-cb");
if (cb === null) {
var toggle_title = '調整樣式:';
var p_v_label = document.getElementById("p-variants-label");
if (p_v_label !== null && p_v_label.innerHTML.indexOf('<span>简体</span>') !== -1) {
toggle_title = '调整样式:';
}
ppq[0].innerHTML = ppq[0].innerHTML + '<span style="float:right">' + toggle_title + '<input id="optimize-cb" type="checkbox" disabled checked onclick="toggle_vertical_content(this)" /><span>';
optimize_vertical_content(paragraphs[0], backup_content);
setTimeout(post_optimization, 300);
}
}
}
}
function post_optimization() {
var cb = document.getElementById("optimize-cb");
if (cb === null) {
setTimeout(post_optimization, 300);
return;
}
if (optimized_done === false) {
// adjust_small_skchar
var skchars = document.querySelectorAll("div > span.inlinecomment > span > img");
if (skchars.length > 0) {
var i;
for (i = 0; i < skchars.length; i++) {
skchars[i].width = "15";
skchars[i].height = "15";
}
}
// text node: punctuations
var texts = document.querySelectorAll("div.mw-parser-output > div > div");
var k;
for (k = 0; k < texts.length; k++) {
var t = texts[k].innerHTML;
var ts = t.split(/<|>/);
var t2 = "";
var j;
for (j = 0; j < ts.length; j++) {
var s = ts[j];
if (s.startsWith('img') || s.startsWith('div') || s.startsWith('span') || s.startsWith('p') || s.startsWith('a href')
|| s.startsWith('table ') || s === 'br' || s === 'pre' || s.startsWith('th') || s.startsWith('tr') || s.startsWith('td')) {
// element start
t2 = t2 + "<" + ts[j] + ">";
} else if (ts[j].startsWith('/')) {
// element end
t2 = t2 + "<" + ts[j] + ">";
} else {
// text node: punctuations 「 」 “ ”
t2 = t2 + ts[j].replace(/「/g, '<span style="display: inline-block; margin-left: -14px;">「</span>').replace(/」/g, '<span style="margin-left:-9px">」</span>').replace(/“/g, '<span style="display: inline-block; margin-left: ' + opening_quote_margin_left + '">“</span>').replace(/”/g, '<span style="margin-left:-9px">”</span>');
}
}
texts[k].innerHTML = t2;
}
optimized_content = document.querySelectorAll("div#mw-content-text div.mw-parser-output")[0].innerHTML;
optimized_done = true;
}
cb.disabled = false;
}
function optimize_vertical_content(element, content) {
if (optimized_content === "") {
var column_div_start = '<div style="width:2.5em; line-height:1.2em; float:right; margin:auto 0; border-right:gray dotted 1px; border-top:black double 3px; padding:5px 0"><div style="width:1.6em; margin:auto 0.5em;">';
// paragraph to div: start
optimized_content = content.replace(/vertical-rl/g, 'initial').replace(/float:right">\n<p><br>\n<\/p><p>/, 'float:right">\n'+column_div_start);
// mobile (p to div)
optimized_content = optimized_content.replace(/float:right">\n<p><br><\/p><p>/, 'float:right">\n'+column_div_start);
// paragraph to div: middle
optimized_content = optimized_content.replace(/<p><br>/g, column_div_start).replace(/<p>/g, column_div_start);
// paragraph to div: end
optimized_content = optimized_content.replace(/<\/p>/g, '</div></div>');
// CJK space
optimized_content = optimized_content.replace(/ ※此字在您的系/g, ' ※此字在您的系').replace(/ /g, '<div> </div>');
// double-line comments: begin
optimized_content = optimized_content.replace(/<span class="invisible">〈<\/span><span class="inlinecomment" style="display:inline-block;vertical-align:middle;"><span style="display:block">/g, '<span class="inlinecomment" style="display:inline-block; vertical-align:middle;float:right;width:3em;line-height:' + line_height + ';margin-right:-0.6em' + (isMobile? ';font-size:smaller' : '' ) + '"><span style="display:block;float:right;width:1.5em">');
// double-line comments: middle
optimized_content = optimized_content.replace(/<\/span><span style="display:block">/g, '</span><span style="display:block;float:right;width:1.5em">');
// double-line comments: end
optimized_content = optimized_content.replace(/<\/span><span class="invisible">〉<\/span>/g, '</span>');
// SKchar
if (!isMobile) {
optimized_content = optimized_content.replace(/\.pdf\.jpg 2x" data-file-width="118" data-file-height="118"/g, '.pdf.jpg 2x" data-file-width="118" data-file-height="118" style="margin-left:-2px"');
} else {
optimized_content = optimized_content.replace(/\.pdf\.jpg" data-file-width="118" data-file-height="118"/g, 'SKQSfont.pdf.jpg" data-file-width="118" data-file-height="118" style="margin-left:-2px"');
}
// punctuations after skchar (1)
optimized_content = optimized_content.replace(/style="margin-left:-2px">([,、。:;?!])/g, 'style="margin-left:-2px"><div style="display: inline-block; width: 6px">$1</div>');
// punctuations after skchar (2)
optimized_content = optimized_content.replace(/style="margin-left:-2px" width="20" height="20">([,、。:;?!])/g, 'style="margin-left:-2px" width="20" height="20"><div style="display: inline-block; width: 6px">$1</div>');
}
element.innerHTML = optimized_content;
}
function resume_vertical_content(element, content) {
element.innerHTML = content;
}
function toggle_vertical_content(element) {
if (element.checked === false) {
resume_vertical_content(target_div, backup_content);
} else {
optimize_vertical_content(target_div, backup_content);
}
}
*/