MediaWiki:Gadget-CopyAsChatAlphabet.js
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-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 case = ['^', '', '~'][code / 16 % 3];
return case + letters[code];
}
document.getElementById('mw-content-text').addEventListener('copy', function(e) {
var data = e.clipboardData || window.clipboardData;
if (!data || !copyOption)
return;
var text = data.getData('text/plain');
data.setData('text/plain', text.replace(/[\ue020-\ue0af]/g, 聊天字母化));
});
$(function() {
if (!document.querySelector('#p-views #ca-view.selected'))
return; // 仅阅读模式生效
copyOption = true;
var checkbox = document.querySelector('#p-variants ul');
if (checkbox) {
checkbox.appendChild(makeButton());
}
});