皆さん、完成という言葉を不用意に使ってはいけませんヨヨヨ。
snack.elve.club
というわけで、図(png,gif,jpeg,jpg)とpdfを追加しようとしてですね・・・pdfはタイトル欲しかったんですが・・・ワイの頭では無理じゃ、というわけで、urlのみです。
pdfの拡張機能使ってるとうまく動かん
function main() { allurl = location.href; prtcl = location.protocol; hst = location.host; localpath = location.pathname; localpara = location.search; const selectedText = window.getSelection().toString(); //テキストを選択していたら引用記法 //google //[google:検索ワード] if (hst.match(/.*google.com.*/g)) { result = localpara.replace(/.*q=([^&]*)&.*/g, '$1'); result = decodeURI(result) if (result == null) { result = "NULL"; } copyToClipboard("[google:" + result + "]"); //wikipedia //[wikipedia:項目目] } else if (hst.match(/.*wikipedia.org.*/g)) { result = localpath.replace(/\/wiki\/(.*)/g, '$1'); result = decodeURI(result) if (result == null) { result = "NULL"; } copyToClipboard("[wikipedia:" + result + "]"); } else if (localpath.match(/\.mp3/g)) { //mp3 str = '<audio src="' + prtcl + '\/\/' + hst + localpath + '" controls></audio>'; copyToClipboard(str); } else if (localpath.match(/\.mp4/g)) { //mp4 str = '<video src="' + prtcl + '\/\/' + hst + localpath + '" controls></video>'; copyToClipboard(str); } else if (localpath.match(/(\.gif|\.jpg|\.jpeg|\.png)/g)) { //iamge str = '<a href="' + allurl + '" ><img src="' + allurl + '" ></a>'; copyToClipboard(str); } else if (localpath.match(/\.pdf/g)) { //pdf const e = document.createElement('textarea'); e.value = "[" + allurl + ":title]"; document.querySelector('body').append(e); e.select(); copyToClipboard(e.value); e.remove(); } else if (localpath.match(/.*viewer\.html\?pdfurl=.*/)) { //pdf<うごかねぇ> copyToClipboard("[" + allurl + ":title=" + location.title + "]"); } else if (selectedText) { //>ページのURL:titel> //選択文章(改行コード含む) //<< str = ">" + allurl + ":title>\n" + selectedText + "\n<<\n"; copyToClipboard(str); } else { //[URL:title] copyToClipboard("[" + allurl + ":title]"); } } //https://mseeeen.msen.jp/copy-text-to-clipboard-with-javascript-in-2021/ async function copyToClipboard(text) { try { await navigator.clipboard.writeText(text) } catch (error) { alert((error && error.message) || 'コピーに失敗しました') } } main();
参考
- JavaScript文字列操作関連 - 逆引きリファレンス的なやつ - Qiita
- ワンクリックでタイトルとURLをいい感じにコピーする - Qiita
- 見て作って学ぶ、PDFファイルの基本構造|TechRacho by BPS株式会社
- Javascript、document.title が表示されない例
- PDF 構文 メタデータ
- pdf-designer.jsの使い方 - PDFDesigner
- How to set the Chrome's PDFs view title? - #6 by Corobori - HTML & CSS - SitePoint Forums | Web Development & Design Community