MediaWiki:Gadget-CopyAsChatAlphabet.js

此后如竟没有炬火,我便是唯一的光。
跳转到导航 跳转到搜索

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
var copyOption = false;

function makeButton() {
    var 按钮 = document.createElement('li');
    按钮.classList.add('mw-list-item');
    var linkOpen = document.createElement('a');
    var linkClose = document.createElement('a');
    linkOpen.innerText = '复制聊天字母 ✗';
    linkOpen.addEventListener("click", function() {
        copyOption = true;
        按钮.removeChild(linkOpen);
        按钮.appendChild(linkClose);
        return false;
    });
    linkClose.innerText = '复制聊天字母 ✓';
    linkClose.addEventListener("click", function() {
        copyOption = false;
        按钮.removeChild(linkClose);
        按钮.appendChild(linkOpen);
        return false;
    });
    按钮.appendChild(linkClose);
    return 按钮;
}

var letters = '!bpmwjqxynzDsrHN!bpmwjqxynzDsrHN!bpmwjqxynzDsrHNldtgkh45vF7Bcfualdtgkh45vF7Bcfualdtgkh45vF7BcfuaoeEAYL62T83V1i  oeEAYL62T83V1i  oeEAYL62T83V1i  ';
function 聊天字母化(letter) {
    var code = letter.charCodeAt(0) - 0xe020;
    var caseSign = ['^', '', '~'][(code >>> 4) % 3];
    return caseSign + letters[code];
}

document.getElementById('mw-content-text').addEventListener('copy', function(e) {
    var data = e.clipboardData || window.clipboardData;
    if (!data || !copyOption)
        return;
    var text = window.getSelection().toString();
    if (text) {
        data.setData('text/plain', text.replace(/[\ue020-\ue0af]/g, 聊天字母化));
        e.preventDefault();
    }
});

$(function() {
    if (!document.querySelector('#p-views #ca-view.selected'))
        return; // 仅阅读模式生效
    copyOption = true;
    var checkbox = document.querySelector('#p-variants ul');
    if (checkbox) {
        checkbox.appendChild(makeButton());
    }
});