|
|
本館粉絲專頁 |
|
|
使用者:Digipunk/mw-common.js:修訂版本之間的差異
台灣棒球維基館
小 (搞定,在「預覽」裡面也可以重新呼叫自訂的 JS) |
小 |
||
| 第11行: | 第11行: | ||
}}} | }}} | ||
| + | |||
| + | //-------------------------------------------------- | ||
| + | // deal with the built-in AJAX preview | ||
| + | //-------------------------------------------------- | ||
var dgpk_pvc = null; // preview content | var dgpk_pvc = null; // preview content | ||
function DGPK_CHECK_PREVIEW() { | function DGPK_CHECK_PREVIEW() { | ||
| − | |||
var WE = document.getElementsByClassName('wikiEditor-ui-tabs'); | var WE = document.getElementsByClassName('wikiEditor-ui-tabs'); | ||
var PV = document.getElementsByClassName('wikiEditor-ui-view-preview'); | var PV = document.getElementsByClassName('wikiEditor-ui-view-preview'); | ||
| + | |||
if (WE.length > 0 && PV.length > 0) { | if (WE.length > 0 && PV.length > 0) { | ||
var A = WE[0].getElementsByTagName('A'); | var A = WE[0].getElementsByTagName('A'); | ||
| + | |||
for (var i = 0, ii = A.length; i < ii; i++) { | for (var i = 0, ii = A.length; i < ii; i++) { | ||
if (A[i].innerHTML == '預覽') { | if (A[i].innerHTML == '預覽') { | ||
| 第23行: | 第28行: | ||
if (dgpk_pvc.length > 0) { | if (dgpk_pvc.length > 0) { | ||
A[i].addEventListener("mousedown", function(event) { | A[i].addEventListener("mousedown", function(event) { | ||
| − | setTimeout('__dgpk_preview()', | + | setTimeout('__dgpk_preview()', 200); |
}, false); | }, false); | ||
} | } | ||
| 第34行: | 第39行: | ||
function __dgpk_preview() { | function __dgpk_preview() { | ||
if (dgpk_pvc[0].innerHTML == '') { | if (dgpk_pvc[0].innerHTML == '') { | ||
| − | setTimeout('__dgpk_preview()', | + | setTimeout('__dgpk_preview()', 100); |
} else { | } else { | ||
DGPK_ONLOAD_ACTIONS(); | DGPK_ONLOAD_ACTIONS(); | ||
2018年7月27日 (五) 12:44的修訂版本
importScript('User:Digipunk/FC/func.js'); window.addEventListener("load", function(event) { DGPK_ONLOAD_ACTIONS(); DGPK_CHECK_PREVIEW(); }, false); function DGPK_ONLOAD_ACTIONS() {{{ try { DGPKJS_CSS_JS(); } catch (e) { console.log(e); } try { DGPKJS_FC(); } catch (e) { console.log(e); } }}} //-------------------------------------------------- // deal with the built-in AJAX preview //-------------------------------------------------- var dgpk_pvc = null; // preview content function DGPK_CHECK_PREVIEW() { var WE = document.getElementsByClassName('wikiEditor-ui-tabs'); var PV = document.getElementsByClassName('wikiEditor-ui-view-preview'); if (WE.length > 0 && PV.length > 0) { var A = WE[0].getElementsByTagName('A'); for (var i = 0, ii = A.length; i < ii; i++) { if (A[i].innerHTML == '預覽') { dgpk_pvc = PV[0].getElementsByClassName('wikiEditor-preview-contents'); if (dgpk_pvc.length > 0) { A[i].addEventListener("mousedown", function(event) { setTimeout('__dgpk_preview()', 200); }, false); } break; } } } } function __dgpk_preview() { if (dgpk_pvc[0].innerHTML == '') { setTimeout('__dgpk_preview()', 100); } else { DGPK_ONLOAD_ACTIONS(); } } //-------------------------------------------------- // insert CSS rules to individual page // and eval script snippet //-------------------------------------------------- function DGPKJS_CSS_JS() { var CSS = document.getElementsByClassName('DGPK-css'); var n = CSS.length; if (n > 0) { var style = (function() { var el = document.createElement('style'); el.appendChild(document.createTextNode('')); // WebKit hack el.type = 'text/css'; el.rel = 'stylesheet'; el.media = 'screen'; // el.id = id; document.head.appendChild(el); return el.sheet; })(); for (var i = n - 1; i >= 0; i--) { //var rules = CSS[i].innerHTML.replace(/<\/?[^>]+>/g, '').split("\n"); var rules = CSS[i].innerText.split("}"); for (var j = 0, jj = rules.length; j < jj; j++) { if (rules[j].trim() == '') continue; style.insertRule(rules[j] + '}'); } CSS[i].parentNode.removeChild(CSS[i]); } } var JS = document.getElementsByClassName('DGPK-js'); for (var i = JS.length - 1; i >= 0; i--) { eval(JS[i].innerText); JS[i].parentNode.removeChild(JS[i]); } } //-------------------------------------------------- // Utilities //-------------------------------------------------- // normalize uri to conform to wiki format function dgpk_wikilink(str) { var pos = str.indexOf('#'); if (pos < 0) { return encodeURI(str); } else { return encodeURI(str.substr(0, pos)) + '#' + encodeURIComponent(str.substr(pos + 1)).replace(/%/g, '.'); } }