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

MediaWiki:Common.js

MediaWiki界面页面
Bill​(留言 | 贡献)2026年6月26日 (五) 11:05的版本 (创建页面,内容为“→这里的任何JavaScript将为所有用户在每次页面加载时加载。:​ // 代码块复制按钮 mw.hook('wikipage.content').add(function ($content) { // 遍历所有高亮代码块 $content.find('.mw-highlight').each(function () { const $block = $(this); // 防止重复添加按钮 if ($block.find('.copy-code-btn').length) return; // 容器设为相对定位,让按钮悬浮在右上角 $block.css('p…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
  • Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
// 代码块复制按钮
mw.hook('wikipage.content').add(function ($content) {
    // 遍历所有高亮代码块
    $content.find('.mw-highlight').each(function () {
        const $block = $(this);
        // 防止重复添加按钮
        if ($block.find('.copy-code-btn').length) return;

        // 容器设为相对定位,让按钮悬浮在右上角
        $block.css('position', 'relative');

        // 创建复制按钮
        const $btn = $('<button class="copy-code-btn">复制代码</button>')
            .css({
                position: 'absolute',
                top: '6px',
                right: '6px',
                padding: '2px 8px',
                border: 'none',
                borderRadius: '4px',
                background: '#555',
                color: '#fff',
                cursor: 'pointer',
                zIndex: '10',
                fontSize: '12px'
            });

        // 点击复制文本
        $btn.on('click', async function () {
            const text = $block.find('pre').text();
            try {
                await navigator.clipboard.writeText(text);
                $btn.text('已复制');
                setTimeout(() => $btn.text('复制代码'), 1500);
            } catch (e) {
                // 兼容不安全环境
                const ta = document.createElement('textarea');
                ta.value = text;
                document.body.appendChild(ta);
                ta.select();
                document.execCommand('copy');
                ta.remove();
                $btn.text('已复制');
                setTimeout(() => $btn.text('复制代码'), 1500);
            }
        });

        $block.append($btn);
    });
});