以下の内容はhttps://takeyamasaaki.hatenablog.com/entry/2024/12/13/232812より取得しました。


ChatGPT にブックマークレットの動作を解説させる

前回ブックマークレットの使い方を説明しました。でも、「便利そうだけど呪文みたいでよくわからない。危なくないの?」と思うかもしれません。そこで ChatGPT の出番です。前回使ったコードを解説してもらいましょう。ChatGPT に次のプロンプトを入力します。

次のブックマークレットの動作について段階を追って説明してください。(コードを貼り付け)

するとこれだけで ChatGPT は次のような解説を出力しました。

このブックマークレットは、選択したテキストまたは手入力したテキストを使ってAmazonの検索ページを開くツールです。以下のように段階を追って動作を説明します。

コードの分解と動作説明

(function(){
  let t = window.getSelection().toString() || 
          prompt("検索するテキストを入力してください:");
  t ? window.open(`https://www.amazon.co.jp/s?k=${encodeURIComponent(t)}`, '_blank') 
    : alert("テキストが選択されていません。");
})();
1. 無名関数の実行
  • (function() { ... })();:
    • 無名関数(関数に名前がない)を即座に実行しています。
    • これにより、クリックした瞬間にコードが実行される仕組みになっています。
2. テキストの取得
  • window.getSelection().toString():

    • ユーザーが現在ウェブページ上で選択しているテキストを取得します。
    • 選択したテキストが存在しない場合、空文字列("")を返します。
  • prompt("検索するテキストを入力してください:"):

    • 選択したテキストがなかった場合、prompt関数が実行されます。
    • ユーザーに「検索するテキストを入力してください」とメッセージを表示し、テキスト入力を求めます。
  • ||(論理 OR 演算子:

    • 選択したテキストが存在する場合はそのテキストを使い、存在しない場合はpromptの結果を使います。
  • 結果的に、変数tには以下のいずれかが格納されます:

    • 選択したテキスト
    • ユーザーが入力したテキスト
    • 空文字列(どちらもない場合)
3. 条件分岐
  • t ? ... : ...:
    • t(取得したテキスト)が空でない場合と空の場合で動作を分けます。
(a) テキストがある場合
  • window.open(...):
    • https://www.amazon.co.jp/s?k=...というURLを作成します。
    • encodeURIComponent(t):
    • 作成したURLを新しいタブ('_blank')で開きます。
      • 例: t = "JavaScript"の場合、以下のURLが開きます:
        • https://www.amazon.co.jp/s?k=JavaScript
(b) テキストがない場合
  • alert("テキストが選択されていません。"):
    • ユーザーに警告を表示します。
    • 選択も入力もされていない場合、検索は実行されません。

動作をステップごとにまとめると

  1. テキスト選択確認:
    • ユーザーが選択したテキストがあるかチェック。
  2. 選択なしの場合:
    • ユーザーにテキスト入力を促すダイアログ(prompt)を表示。
  3. テキスト取得:
    • 選択されたテキストか、入力されたテキストを取得。
  4. 検索ページの生成:
    • テキストがある場合、Amazonの検索ページを新しいタブで開く。
  5. エラーハンドリング:
    • テキストがない場合、警告メッセージを表示。

ChatGPT からの説明は以上です。いかがですか?実行した際に何が起きるのかがわかると、少し安心できるのではないでしょうか。ネット上を「ブックマークレット おすすめ」などで検索するといろいろなブックマークレットが見つかります。いくつか解説を試してみてください。さて、ChatGPT はコードの解説だけでなく、指示されたコードを書くこともできます。次回は ChatGPT を使ってブックマークレットを作ってみましょう!

この記事はここまでです。有料部分はありません。
もし有益と感じられたなら ↓ から「投げ銭」お願いします。

この続きはcodocで購入



以上の内容はhttps://takeyamasaaki.hatenablog.com/entry/2024/12/13/232812より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14