Teruhiro Komaki's Blog (Temporary)

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

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

自分用のメモです。

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

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

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

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

適当に書きました。

 1javascript:(function() {
 2  const title = document.title;
 3  const url = new URL(window.location.href);
 4  const pathNameArray = url.pathname.split('/');
 5  const dpIndex = pathNameArray.indexOf('dp');
 6  if (dpIndex === -1) {
 7    window.alert('not found `dp`');
 8  } else {
 9    const dpValue = pathNameArray[dpIndex + 1];
10    const cleanUrl = `https://www.amazon.co.jp/dp/${dpValue}/`;
11    const copyText = `\n${title}\n${cleanUrl}\n`;
12    const dummy = document.createElement('textarea');
13    document.body.appendChild(dummy);
14    dummy.value = copyText;
15    dummy.select();
16    document.execCommand('copy');
17    document.body.removeChild(dummy);
18    window.alert(copyText);
19  }
20})();

コードを1行にする

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

 1以下のブックマークレットから不要なスペースや改行を削除して、1行にしてください。
 2
 3```javascript
 4javascript:(function() {
 5  const title = document.title;
 6  const url = new URL(window.location.href);
 7  const pathNameArray = url.pathname.split('/');
 8  const dpIndex = pathNameArray.indexOf('dp');
 9  if (dpIndex === -1) {
10    window.alert('not found `dp`');
11  } else {
12    const dpValue = pathNameArray[dpIndex + 1];
13    const cleanUrl = `https://www.amazon.co.jp/dp/${dpValue}/`;
14    const copyText = `\n${title}\n${cleanUrl}\n`;
15    const dummy = document.createElement('textarea');
16    document.body.appendChild(dummy);
17    dummy.value = copyText;
18    dummy.select();
19    document.execCommand('copy');
20    document.body.removeChild(dummy);
21    window.alert(copyText);
22  }
23})();
24```

結果

1javascript:(function(){const title=document.title;const url=new URL(window.location.href);const pathNameArray=url.pathname.split('/');
Tags:
comments powered by Disqus