4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プレーンテキストとしてコピーするブックマークレット

Posted at

javascript:(()=>{const%20e=getSelection().toString();if(e){const%20t=document.createElement("textarea");t.textContent=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),t.parentNode.removeChild(t)}})();

何ですか、これは?

iPhone Safariでテキストをコピーしてメモにペーストすると余計な装飾がついてきます。
このURLのリンクや太字、カラーなどいわゆるリッチテキストのフォーマットの設定は、正直言って要らないと思うことがしょっちゅうです。
そんな時に使うと、ひと手間省けて得した気分になる便利なやつです。

使い方

ブラウザで文字列を選択した状態で、ブックマークレットを実行します。
プレーンテキストがクリップボードに保存されるので、あとは自由にペーストして下さい。

copyplaintext.js
(
    () => {
// ---------------------------------------------------------------
const text = getSelection().toString();
if (text) {
    // textarea
    const ta = document.createElement('textarea');
    ta.textContent = text;
    document.body.appendChild(ta);

    // select text
    ta.select();

    // copy to clipboard
    document.execCommand("copy");    
    
    // remove textarea
    ta.parentNode.removeChild(ta);
}
// ---------------------------------------------------------------
    }
)();

簡潔な説明

大体の流れは次の通りです。

  1. 選択された文字列を取得する。
  2. textareaを用意して、取得した文字列をそこに流し込む。
  3. textareaの内容を選択する。
  4. 選択した内容をクリップボードにコピーする。
  5. textareaを削除する。

テスト環境

iPhone 6s
iOS 13.4.1
Safari

まとめ

コードは割と短く、いい感じに仕上がりました。
以上、Qiita2度目の投稿でした。
お疲れ様でした。

参考

次の記事にお世話になりました。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?