MediaWiki:Gadget-CopyAsChatAlphabet.js:修订间差异

此后如竟没有炬火,我便是唯一的光。
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
第27行: 第27行:
function 聊天字母化(letter) {
function 聊天字母化(letter) {
var code = letter.charCodeAt(0) - 0xe020;
var code = letter.charCodeAt(0) - 0xe020;
var caseSign = ['^', '', '~'][code / 16 % 3];
var caseSign = ['^', '', '~'][(code >>> 4) % 3];
return caseSign + letters[code];
return caseSign + letters[code];
}
}

2023年2月9日 (四) 01:51的版本

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());
    }
});