URLとタイトルを取得するブックマークレット

2024年09月18日 水曜日 12時00分

こんにちは。お久しぶりです。

自分用のメモです。

ブックマークレットって、SafariやChromeなど、基本的にどのブラウザでも同じように動くので、便利ですよね。

ブックマークレットの基本形

javascript:(function() {
  // ここにコードをかく
})();

URLとタイトルを取得するブックマークレット

適当に書きました。

javascript:(function() {
  const title = document.title;
  const url = new URL(window.location.href);
  const copyText = `\n${title}\n${url}\n`;
  const dummy = document.createElement('textarea');
  document.body.appendChild(dummy);
  dummy.value = copyText;
  dummy.select();
  document.execCommand('copy');
  document.body.removeChild(dummy);
  window.alert(copyText);
})();

コードを1行にする

ChatGPTに以下のようなプロンプトでお願いすると、適当に1行にしてくれます。

以下のブックマークレットから不要なスペースや改行を削除して、1行にしてください。

```javascript
javascript:(function() {
  const title = document.title;
  const url = new URL(window.location.href);
  const copyText = `\n${title}\n${url}\n`;
  const dummy = document.createElement('textarea');
  document.body.appendChild(dummy);
  dummy.value = copyText;
  dummy.select();
  document.execCommand('copy');
  document.body.removeChild(dummy);
  window.alert(copyText);
})();
```

結果

javascript:(function(){const title=document.title;const url=new URL(window.location.href);const copyText=`\n${title}\n${url}\n`;const dummy=document.createElement('textarea');document.body.appendChild(dummy);dummy.value=copyText;dummy.select();document.execCommand('copy');document.body.removeChild(dummy);window.alert(copyText);})();

コードをミニファイする

ChatGPTに以下のようなプロンプトでお願いすると、ミニファイしてくれます。

以下のブックマークレットを、ミニファイしてください。

```javascript
javascript:(function() {
  const title = document.title;
  const url = new URL(window.location.href);
  const copyText = `\n${title}\n${url}\n`;
  const dummy = document.createElement('textarea');
  document.body.appendChild(dummy);
  dummy.value = copyText;
  dummy.select();
  document.execCommand('copy');
  document.body.removeChild(dummy);
  window.alert(copyText);
})();
```

結果

javascript:(function(){const t=document.title,u=new URL(window.location.href),c=`\n${t}\n${u}\n`,d=document.createElement("textarea");document.body.appendChild(d),d.value=c,d.select(),document.execCommand("copy"),document.body.removeChild(d),window.alert(c)})();