UtaTenの歌詞コピーページ
{
"name": "UtaTen歌詞コピー",
"version": "1.0.0",
"manifest_version": 3,
"description": "UtaTen歌詞コピー",
"content_scripts": [
{
"matches": ["https://utaten.com/lyric/*"],
"js": ["./app.js"]
}
]
}
const selectText = node => {
const selection = window.getSelection();
const range = document.createRange();
range.selectNodeContents(node);
selection.removeAllRanges();
selection.addRange(range);
return selection;
};
const main = () => {
const div = document.createElement('div');
const button = document.createElement('button');
div.appendChild(button);
document.getElementsByClassName('topBanner')[0].after(div);
div.style.textAlign = 'center';
button.textContent = '歌詞をコピーする';
button.style.width = '150px';
button.style.height = '50px';
button.onclick = () => {
const str = Array.from(document.querySelectorAll('.romaji .ruby')).reduce(
(acc, dom) => {
acc += dom.querySelector('.rb').textContent.trim();
if (dom.nextElementSibling.innerHTML === '') {
acc += '\n';
}
return acc;
},
''
);
const _div = document.createElement('div');
_div.className = 'highlight';
_div.style.color = '#fff';
_div.style.whiteSpace = 'pre-wrap';
_div.textContent = str;
document.getElementsByClassName('topBanner')[0].after(_div);
const selection = selectText(_div);
document.execCommand('copy');
selection.removeAllRanges();
document.querySelector('.highlight').remove();
alert('歌詞をコピーしました');
};
};
main();