|
|
(未显示同一用户的9个中间版本) |
第1行: |
第1行: |
| <includeonly> | | <includeonly><span id="CCB_button" class="mw-ui-button mw-ui-progressive" style="user-select: none;"> |
| <span id="CCB_button" class="mw-ui-button mw-ui-progressive" style="cursor: pointer;"> | | <span onclick="swit_so_CCB();"> |
| <img src="/images/5/5b/%E5%A4%A7%E7%99%BD%E8%B1%A1.webp" style="width:1em; vertical-align:middle;">
| | <img src="/images/5/5b/%E5%A4%A7%E7%99%BD%E8%B1%A1.webp" style="width:1em" draggable="false"> |
| <span style="margin-left:0.3em;">点我 CCB!!</span>
| | <span>点我CCB!!</span> |
| </span> | | </span> |
| | | </span></includeonly><noinclude>{{doc|content=注意:widget不应该在条目中直接使用!请使用{{tl|CCB-button}}。}}</noinclude> |
| <script> | |
| (function waitForGadgetAndBind() {
| |
| // 等待 mw.loader 可用
| |
| if (typeof mw === 'undefined' || !mw.loader?.getState) {
| |
| return setTimeout(waitForGadgetAndBind, 50);
| |
| }
| |
| | |
| var gadgetName = 'ext.gadget.CaoCaoBi';
| |
| var state = mw.loader.getState(gadgetName);
| |
| | |
| if (state === 'registered') {
| |
| // 模块已注册但未加载,则主动加载
| |
| mw.loader.load(gadgetName);
| |
| return setTimeout(waitForGadgetAndBind, 50);
| |
| }
| |
| if (state === 'loading' || state === 'loaded') {
| |
| // 加载中,继续等待
| |
| return setTimeout(waitForGadgetAndBind, 50);
| |
| }
| |
| if (state === 'ready') {
| |
| // 模块就绪,拿到导出接口
| |
| mw.loader.using(gadgetName).then(function(ccb) {
| |
| var btn = document.getElementById('CCB_button');
| |
| if (!btn) return;
| |
| // 只绑定,不执行
| |
| btn.addEventListener('click', function(e) {
| |
| e.preventDefault();
| |
| if (typeof ccb.swit_so_CCB === 'function') {
| |
| ccb.swit_so_CCB();
| |
| } else {
| |
| console.warn('swit_so_CCB 方法未找到');
| |
| }
| |
| });
| |
| });
| |
| return;
| |
| }
| |
| // 其他状态,继续轮询
| |
| setTimeout(waitForGadgetAndBind, 50);
| |
| })();</script></includeonly><noinclude>注意:本 Widget 不应在页面正文中直接使用,请改为通过模板 <code>{{tl|CCB-auto}}</code> 调用。</noinclude>
| |