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

此后如竟没有炬火,我便是唯一的光。
跳转到导航 跳转到搜索
无编辑摘要
(物灵移动页面User:物灵/vector.jsMediaWiki:Gadget-CopyAsChatAlphabet.js,不留重定向)
 
(未显示同一用户的2个中间版本)
第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];
}
}
第35行: 第35行:
if (!data || !copyOption)
if (!data || !copyOption)
return;
return;
var text = data.getData('text/plain');
var text = window.getSelection().toString();
console.log(text);
if (text) {
data.setData('text/plain', text.replace(/[\ue020-\ue0af]/g, 聊天字母化));
data.setData('text/plain', text.replace(/[\ue020-\ue0af]/g, 聊天字母化));
e.preventDefault();
}
});
});



2023年2月9日 (四) 01:55的最新版本

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