potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

ブックマークレットのメモ

ブックマークレット(ブックマークに登録するJavaScript)のメモです。ブックマークやお気に入りに新しい項目を作成してURLにコードを貼り付けることで、処理を実行する項目を作成できます。

CSSセレクタに一致するA要素のリンク先をすべて開く。

クラスがclass-name/IDがidのA要素のリンク先をすべて開くコードです。filter(...)は空リンク除去のために加えています。

javascript:[...document.querySelectorAll("A.class-name")].filter(elem => elem["href"]).forEach(elem => window.open(elem["href"]));
javascript:[...document.querySelectorAll("A#id")].filter(elem => elem["href"]).forEach(elem => window.open(elem["href"]));

CSSセレクタに一致する要素のinnerTextを列挙する。

クラスがclass-name/IDがidの要素のinnerTextを列挙するコードです。空行や余分な空白はtrim()で除去しています。

javascript:alert([...document.querySelectorAll(".class-name")].map(elem => elem.innerText.trim()).join("\n"));
javascript:alert([...document.querySelectorAll("#id")].map(elem => elem.innerText.trim()).join("\n"));

タイトルのコピー

javascript:navigator.clipboard.writeText(document.title).then();

開いているタブのタイトル(TITLE要素の中身)をクリップボードにコピーします。 動作確認環境:Windows 10 64 bit, Google Chrome 69

選択範囲 in -> cm

javascript:navigator.clipboard.writeText(Number(getSelection())*2.54).then();

選択範囲のインチ単位の数値をセンチメートル単位に変換してクリップボードにコピーします。 動作確認環境:Windows 10 64 bit, Google Chrome 69

最初の.title要素のテキストに半角スペースを加えてクリップボードにコピー

ページの一番最初にあるクラスが.titleの要素のテキストに半角スペースを加えてクリップボードにコピーします。 動作確認環境:Windows 10 64 bit, Google Chrome 69

javascript:navigator.clipboard.writeText(document.querySelector('.title').textContent+' ').then();

最初のh1.title要素のテキストに半角スペースを加えてクリップボードにコピー

ページの一番最初にあるクラス.titleのH1要素のテキストに半角スペースを加えてクリップボードにコピーします。 動作確認環境:Windows 10 64 bit, Google Chrome 69

javascript:navigator.clipboard.writeText(document.querySelector('h1.title').textContent+' ').then();

ある属性に特定の値を持つクラスのn番目要素のある属性をコピー

javascript:navigator.clipboard.writeText(document.querySelector(".<class-name>[<attribute-name>=<attribute-value>]").getAttribute("<attribute2-name>"));