今見てるページタイトルとURLをコピーし、Amazon商品ページだったらアフィIDを付けるブックマークレット

Safari や Chrome などのブラウザでWebページを見ていて、それをシェアしたくなった時のためのブックマークレットです。

通常のページであれば title タグの内容と URL をコピーし、今見ているページが Amazon だったら単に title タグの内容をコピーするのではなく商品名と URL をコピーし、URL の最後に Amazon アソシエイトのトラッキングIDを追加します。

bookmarklet

ブックマークレットそのものにツイート機能はありませんので、生成された文字列をコピーし、Echofon for Mac 等の Twitter クライアント(日本語 URL をエンコードしてくれる機能のあるクライアント)でツイートする必要があります。
Chrome 上で使用した場合は、日本語は自動的にエンコードされます。

なぜこのブックマークレットを作ったかというと、Safari で今見ているページのタイトルと URL を私好みの形式で取得できる拡張が見つからなかったのと、Amazon 商品ページにあるツイートボタンは時間がかかりすぎるからです。

標準では、次のような形式の文字列をプロンプト内のテキスト入力エリアに表示します。

"タイトル" URL

使い方

ブックマークレットのソースは以下のとおりです。
こちらのソースをすべて選択し、コピーしておいてください。

javascript:
  if(document.URL.indexOf('amazon.co.jp') == -1){
    prompt('コピーしてください','"'+document.title+'"'+'%20'+document.URL);
  }
  else {
    title = document.getElementById('btAsinTitle').innerText;
    param = (document.URL.indexOf('?') == -1) ? '?' : '&';
    prompt('Amazon mode','"'+title+'"'+'%20'+document.URL+param+'tag=example-22');
  }

ブラウザで適当なページをブックマークし、そのブックマークを編集、URL の欄にコピーしたものをペーストし、OK ボタンを押します。

解説

ブックマークレットは、先頭に javascript: と書いておく必要があります。それ以降は通常の JavaScript と同じです。

javascript:

このブックマークレットは、URL に amazon.co.jp が含まれるかどうかで大きく動作が変わります。

  if(document.URL.indexOf('amazon.co.jp') == -1){
    // 処理
  }
  else {
    // 処理
  }

Amazon の場合は、title をコピーするのではなく、商品名の部分をコピーします。
商品名は <span id=”btAsinTitle”> にそのまま入っているので、document.getElementById(‘btAsinTitle’).innerText でそれを取得します。

    title = document.getElementById('btAsinTitle').innerText;

Amazon の場合、URL に ? が含まれない場合は ?tag=トラッキングID のように、? が含まれる場合は &tag=トラッキングID のようにします。
これは if 文だと長くなるので、三項演算子で処理しています。

    param = (document.URL.indexOf('?') == -1) ? '?' : '&';
    prompt('Amazon mode','"'+title+'"'+'%20'+document.URL+param+'tag=example-22');
Webコーディングスクール 体験レッスン受付中

注意点

Amazon のトラッキングIDをご自分のものに変える場合は、example-22 部分を変更してください。

追記(2013/11/25)

<a>タグを生成するバージョンも制作しました。
target=”_blank”(別のタブで開く)付きです。

javascript:
  if(document.URL.indexOf('amazon.co.jp') == -1){
    prompt('コピーしてください',''+document.title+'');
  } else {
    title = document.getElementById('btAsinTitle').innerText;
    param = (document.URL.indexOf('?') == -1) ? '?' : '&';
    prompt('Amazon mode',''+document.title+'');
  }

最近の記事

Web制作関連動画

メルマガ会員向けの「コーダーにも役立つ補完AI『Codeium』の使い方」の動画を期間限定で公開しています。
CodeiumはGitHub Copilotと似ていますが、CSSなども補完できて、今登録すれば無料で使えます。

メルマガでは、Web制作者のためのAI活用やWordPress関連の動画など、さまざまな特典があります。ご興味ある方は、ぜひメルマガにご登録ください。
Index