User:Bencmq/QPreview.js
外观
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
//http://en.wikipedia.org/wiki/User:Alex_Smotrov/qpreview.js
//Source code in PD, released by author
if (wgAction == 'edit' || wgAction == 'submit')
addOnloadHook(addQPreviewButton);
function addQPreviewButton(){
if (!window.qPreviewName) qPreviewName = 'QPreview';
var accesskey = window.qPreviewKey || '';
if (window.qPreviewAtBottom)
addSystemButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey);
else
addToolbarButton(qPreviewName, qPreview, 'btnQPreview', 'Quick Preview', accesskey);
}
function qPreview(){
var divPreview = document.getElementById('wikiPreview');
if (!divPreview) return;
var btnQPreview = document.getElementById('btnQPreview');
var btnWidth = Math.max(btnQPreview.scrollWidth, btnQPreview.offsetWidth);
if (btnQPreview) btnQPreview.value = window.qPreviewWait || 'Wait...';
btnQPreview.style.width = btnWidth + 'px';
a = sajax_init_object();
a.open('POST', document.editform.action+'&live', true);
var Boundary = '--------p1415';
a.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+Boundary);
var PostData = '--' + Boundary
+ '\nContent-Disposition: form-data; name="wpTextbox1"\n\n'
+ document.getElementById('wpTextbox1').value + '\n--'+Boundary;
if (a.overrideMimeType) a.overrideMimeType('text/html');
a.send(PostData);
a.onreadystatechange = function(){
if (a.readyState != 4) return;
var html = a.responseText;
html = html.replace(/>/g,'>').replace(/</g,'<').replace(/"/g,'"').replace(/&/g,'&').replace(/'/g,"'");
divPreview.innerHTML = html;
divPreview.style.display = 'block'
if (btnQPreview) btnQPreview.value = qPreviewName;
};
}
function addSystemButton(name, onclick, id, tooltip, accesskey){
var wpPreview = document.getElementById('wpPreview');
if (!wpPreview) return;
var btn = document.createElement('input');
btn.type = 'button';
if (name) btn.value = name;
if (onclick) btn.onclick = onclick;
if (id) btn.id = id;
if (tooltip) btn.title = tooltip;
if (accesskey) {
btn.accessKey = accesskey;
btn.title += ' [' + tooltipAccessKeyPrefix + btn.accessKey + ']';
}
wpPreview.parentNode.insertBefore(btn, wpPreview);
return btn;
}
function addToolbarButton(name, onclick, id, tooltip, accesskey){
var toolbar = document.getElementById('toolbar');
if (!toolbar) return;
var btn = document.createElement('input');
btn.type = 'button';
btn.style.background = '#adbede';
btn.style.height = '22px';
btn.style.verticalAlign = 'middle';
if (name) btn.value = name;
if (onclick) btn.onclick = onclick;
if (id) btn.id = id;
if (tooltip) btn.title = tooltip;
if (accesskey) btn.accessKey = accesskey;
toolbar.appendChild(btn);
return btn;
}