미디어위키:Gadget-Site.js
참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
- 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
- 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
- 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
- 오페라: Ctrl-F5를 입력.
/* global mw, $, importScript, jsMsg */
// Add "mainpage" class to the body element
if (
mw.config.get( 'wgIsMainPage' ) &&
mw.config.get( 'wgAction' ) === 'view'
) {
$( document ).ready( function() {
document.body.className += ' mainpage';
});
}
/**
* @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
* @revision 2017-05-16
*/
mw.loader.using( ['mediawiki.util'], function () {
var extraCSS = mw.util.getParamValue( 'withCSS' ),
extraJS = mw.util.getParamValue( 'withJS' ),
extraModule = mw.util.getParamValue( 'withModule' );
if ( extraCSS ) {
// DONT REMOVE THIS IF (unless you are OK with CSRF attacks)
if ( /^MediaWiki:[^&<>=%#]*\.css$/.test( extraCSS ) ) {
mw.loader.load( '/w/index.php?title=' + encodeURIComponent( extraCSS ) + '&action=raw&ctype=text/css', 'text/css' );
} else {
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );
}
}
if ( extraJS ) {
// DONT REMOVE THIS IF (unless you are OK with XSS and CSRF attacks)
if ( /^MediaWiki:[^&<>=%#]*\.js$/.test( extraJS ) ) {
mw.loader.load( '/w/index.php?title=' + encodeURIComponent( extraJS ) + '&action=raw&ctype=text/javascript' );
} else {
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );
}
}
if ( extraModule ) {
if ( /^ext\.gadget\.[^,\|]+$/.test( extraModule ) ) {
mw.loader.load( extraModule );
} else {
mw.notify( 'Only gadget modules are allowed.', { title: 'Invalid withModule value' } );
}
}
});
/**
* Load CSS and JS files temporarily through URL.
* &use=File1.css|File2.css|File3.js
*
* Required modules: mediawiki.util
* @source https://www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL#Load_multiple_files
* @revision 2017-05-16
*/
mw.loader.using( ['mediawiki.util'], function () {
var files = mw.util.getParamValue( 'use' ), user, FileRE, ExtRE, path;
if ( !files ) {
return;
}
user = mw.RegExp.escape( mw.config.get( 'wgUserName', '' ) );
FileRE = new RegExp( '^(?:MediaWiki:' + ( user ? '|User:' + user + '/' : '' ) + ')[^&<>=%#]*\\.(js|css)$' );
ExtRE = new RegExp( '^ext\\.[^,]+$' );
path = mw.config.get('wgServer')
+ mw.config.get('wgScript')
+ '?action=raw&ctype=text/';
$.each( files.split( '|' ), function(k, v) {
var f = $.trim( v ), what = FileRE.exec( f ) || ['', ''];
switch ( what[1] ) {
case 'js':
mw.loader.load( path + 'javascript&title=' + encodeURIComponent( f ) );
break;
case 'css':
mw.loader.load( path + 'css&title=' + encodeURIComponent( f ) );
break;
default:
if ( ExtRE.exec( f ) ) {
mw.loader.load(f);
}
}
});
});