跳转到内容
帆域维基
通知
user-interface-preferences
个人工具
创建账号
登录
搜索
打开主菜单
0
篇文章
帆域维基
导航
首页
最近更改
随机页面
查看“Template:ResourceLoader”的源代码
来自帆域维基
←
Template:ResourceLoader
命名空间
模板
讨论
查看
阅读
查看源代码
查看历史
更多
工具
链入页面
相关更改
上传文件
特殊页面
页面信息
页面值
语言变体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<includeonly> <div class="resourceLoader" style="display:none" data-is-module="{{{isModule|false}}}" data-mime="{{{MIME|}}}" >{{{1|}}}</div> </includeonly><noinclude> {{教程标题|一级标题=前言}} <div class="wenzi1"> * '''本模板转载自:方舟指令WIKI''' * '''区别于直接增加代码至common.js页面的全局加载的做法,ResourceLoader加载JS可控制页面JS数量,提升加载效率并预防JS冲突。''' * '''使用[//www.mediawiki.org/wiki/ResourceLoader/Core_modules#mw.loader.load mw.loader.load]载入js脚本、css样式表或js模块。''' * '''Js脚本仅限于MediaWiki命名空间下的页面。''' <br> {{教程标题|一级标题=使用办法}} 在需要的的页面写入<pre>{{ResourceLoader|你的js/css/js模块}}</pre> 参数列表: <pre> #1 页面名称或模块名称。 isModule 当值为"true"时,载入js模块或小工具,并忽略后面的参数。 MIME "text/javascript" 或 "text/css" </pre> <br> {{教程标题|一级标题=魔改版}} 本ResourceLoader为赛马娘wiki魔改版,'''支持[[模板:ES6]]与[[模板:React]]丨作者:素子ちゃん_official''' 在需要的的页面写入<pre>{{ResourceLoader|你的js/css/js模块}}</pre> 参数列表: <pre> #1 页面名称或模块名称。 isModule 当值为"true"时,载入js模块或小工具,并忽略后面的参数。 isModuleES6 当值为"true"时,载入ES6模块,并忽略后面的参数。 isModuleReact 当值为"[true,true]"时,载入React并载入JSX模块,并忽略后面的参数。 当值为"[false,true]"时,不载入React,载入JSX模块,并忽略后面的参数。 MIME "text/javascript" 或 "text/css" </pre> {{提示|红色|'''请在Common.js添加相应的魔改ResourceLoader代码'''|宽度=100%}} <syntaxhighlight lang="javascript" line> /* 参见[[模板:ResourceLoader]]*/ /* 将相关代码用改为DOM加载完成后运行,解决部分情况 模板:ResourceLoader加载不完全的问题 -- 芙兰朵露琪露诺 2021/8/11*/ function templateResourceLoader() { $('.resourceLoader').each(function() { var $x = $(this); var text = $.trim($x.text()); if (!text) return; //加载模块 if ($x.data('isModule') == true) return mw.loader.load(text); //自动补充MediaWiki命名空间 var ns = text.match('^.*?:'); if (!ns) text = 'MediaWiki:' + text; //加载CSS样式表 var mime = ($x.data('mime') || "text/javascript").toLowerCase(); if (mime == "text/css") { if (text.slice(-4).toLowerCase() !== '.css') text = text + '.css'; //if ($x.data('debug') !== true) text = text + '&debug=false'; return mw.loader.load("//wiki.biligame.com/umamusume/index.php?title="+text+"&action=raw&ctype=text/css", "text/css"); } //加载JS脚本 if (ns && ns[0].toLowerCase() !== 'mediawiki:') { return console.log('ResourceLoader: 不允许加载MediaWiki以外的js脚本'); } if (text.slice(-3).toLowerCase() !== '.js') text = text + '.js'; //加载ES6模块 if ($x.data('isModuleEs6') == true) return loadModuleES6("//wiki.biligame.com/umamusume/index.php?title="+text+"&action=raw&ctype=text/javascript", function() { console.log("ResourceLoader: 加载ES6模块 => " + text); }); //加载React模块 if ($x.data('isModuleReact')) { if ($x.data('isModuleReact')[0]) { $.getScript("//wiki.biligame.com/umamusume/index.php?title=MediaWiki:React.development.min.js&action=raw&ctype=text/javascript", function() { $.getScript("//wiki.biligame.com/umamusume/index.php?title=MediaWiki:React-dom.development.min.js&action=raw&ctype=text/javascript", function() { console.log("ReactENV => React/ReactDOM Loaded! React is Available For This Page!"); console.log("%c React开发提示 %c 请务必在JS编辑界面右下角使用React同步器同步编译你的JSX代码,否则它将不起任何作用", "color: #fff; padding: 5px 0; background: blue;", "padding: 5px 5px 5px 0; background: #e5e5ff; color:blue"); $('.resourceLoader').each(function() { var $xr = $(this); var textr = $.trim($xr.text()); if (!textr) return; //自动为React模块补充MediaWiki命名空间与-babel后缀 var nsr = textr.match('^.*?:'); if (!nsr) textr = 'MediaWiki:' + textr.slice(0, -3); textr += '-babel.js'; if ($xr.data('isModuleReact') && $xr.data('isModuleReact')[1]) { loadModuleES6("//wiki.biligame.com/umamusume/index.php?title="+textr+"&action=raw&ctype=text/javascript", function() { console.log("ResourceLoader: 加载React模块 => " + textr); }); } }); }); }); return; } } //加载普通脚本 console.log('ResourceLoader: 加载JS => ' + text); //if ($x.data('debug') !== true) text = text + '&debug=false'; return mw.loader.load("//wiki.biligame.com/umamusume/index.php?title="+text+"&action=raw&ctype=text/javascript", "text/javascript"); }); } if (document.readyState == 'loading') { document.addEventListener('DOMContentLoaded', templateResourceLoader); } else { templateResourceLoader(); } //加载ES6模块 function loadModuleES6(src, callback) { var script = document.createElement('script'), head = document.getElementsByTagName('head')[0]; script.type = 'module'; script.charset = 'UTF-8'; script.src = src; if (script.addEventListener) { script.addEventListener('load', function () { callback(); }, false); } else if (script.attachEvent) { script.attachEvent('onreadystatechange', function () { var target = window.event.srcElement; if (target.readyState == 'loaded') { callback(); } }); } head.appendChild(script); } </syntaxhighlight> </div> </noinclude>
该页面使用的模板:
Template:提示
(
查看源代码
)
Template:教程标题
(
查看源代码
)
返回
Template:ResourceLoader
。