打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Widget:CCB-button:修订间差异

来自OTTOWiki
第1行: 第1行:
<includeonly><span id="CCB_button" class="mw-ui-button mw-ui-progressive">
<includeonly>
<span onclick="swit_so_CCB();">
<span id="CCB_button" class="mw-ui-button mw-ui-progressive" style="cursor: pointer;">
<img src="/images/5/5b/%E5%A4%A7%E7%99%BD%E8%B1%A1.webp" style="width:1em">
    <img src="/images/5/5b/%E5%A4%A7%E7%99%BD%E8%B1%A1.webp" style="width:1em; vertical-align:middle;">
<span>点我CCB!!</span>
    <span style="margin-left:0.3em;">点我 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>

2025年6月20日 (五) 21:00的版本

注意:本 Widget 不应在页面正文中直接使用,请改为通过模板 {{CCB-auto}} 调用。