AmazonのURLを最小限に綺麗にして、URLとタイトルを取得するブックマークレット

2024年10月02日 水曜日 22時00分

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

自分用のメモです。

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

AmazonのURLって、色々なパラメーターが設定されています。 Raindropへ保存する際や、誰かに共有する際に、汚いURLは嫌なので、最小限で綺麗なURLを準備したいことがあります。

作る前に、ググってみましたが、いまいちピンとくるものがなかったので、作りました。

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

適当に書きました。

javascript:(function() {
  const title = document.title;
  const url = new URL(window.location.href);
  const pathNameArray = url.pathname.split('/');
  const dpIndex = pathNameArray.indexOf('dp');
  if (dpIndex === -1) {
    window.alert('not found `dp`');
  } else {
    const dpValue = pathNameArray[dpIndex + 1];
    const cleanUrl = `https://www.amazon.co.jp/dp/${dpValue}/`;
    const copyText = `\n${title}\n${cleanUrl}\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 pathNameArray = url.pathname.split('/');
  const dpIndex = pathNameArray.indexOf('dp');
  if (dpIndex === -1) {
    window.alert('not found `dp`');
  } else {
    const dpValue = pathNameArray[dpIndex + 1];
    const cleanUrl = `https://www.amazon.co.jp/dp/${dpValue}/`;
    const copyText = `\n${title}\n${cleanUrl}\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 pathNameArray=url.pathname.split('/');