alt+c to copy title link
// ==UserScript==
// @name copy title
// @description alt+c to copy title link
// @name:en copy title
// @description:en alt+c to copy title link
// @name:ko 페이지 제목 복사
// @description:ko alt+c로 페이지 제목 링크 복사
// @namespace https://greasyfork.org/ko/users/713014-nanikit
// @version 240207
// @author nanikit
// @match *://*/*
// @grant none
// ==/UserScript==
'use strict';
addEventListener('keydown', (event) => {
if (event.altKey && event.code === 'KeyC') {
copyTitle();
}
});
async function copyTitle() {
const anchor = createTitleAnchor();
await setClipboard([
new Blob([anchor.outerHTML], { type: 'text/html' }),
new Blob([anchor.innerText], { type: 'text/plain' })
]);
}
async function setClipboard(blobs) {
const item = blobs.reduce((data, blob) => (data[blob.type] = blob, data), {});
await navigator.clipboard.write([new ClipboardItem(item)]);
}
function createTitleAnchor(){
const titleText = document.title;
const anchor = document.createElement('a');
anchor.href = document.location.href;
anchor.innerText = titleText;
return anchor
}