画像検索結果を高速化!「Google Imageless Buttons」で画像表示ボタンを削除してページ表示時間を短縮

2024-04-02

Google Imageless Buttons プログラミング解説

この拡張機能の主な目的は以下の2つです。

  • 著作権侵害のリスクを減らす: 画像検索結果から簡単に画像をダウンロードできることを懸念していたGetty Imagesなどの写真素材会社からの訴訟リスクを低減します。
  • ユーザー体験を向上させる: 画像表示ボタンをクリックする手間を省き、ユーザーが画像をよりスムーズに見られるようにします。

この拡張機能の仕組みは、以下の3つの要素で構成されています。

JavaScript:

  • 画像検索結果ページのDOMを操作し、「画像を表示」ボタンを削除します。
  • 代替手段として、画像のサムネイルをクリックすると、画像をホスティングしている元のページにユーザーをリダイレクトします。

HTML:

  • 削除された「画像を表示」ボタンの代わりに表示するメッセージやリンクを記述します。
  • リダイレクト先のページのデザインやレイアウトを調整します。

CSS:

  • 拡張機能によって追加された要素のスタイルを設定します。
  • ボタンやメッセージのデザイン、位置、色などを調整します。

以下は、Google Imageless Buttons拡張機能のJavaScriptコード例です。

// 画像検索結果ページのDOMを取得
const results = document.querySelector('.image-results');

// すべての「画像を表示」ボタンを取得
const viewImageButtons = results.querySelectorAll('.view-image-button');

// すべてのボタンをループ処理し、削除
for (const button of viewImageButtons) {
  button.parentNode.removeChild(button);
}

// 代替のメッセージを追加
const message = document.createElement('p');
message.textContent = '画像を表示するには、サムネイルをクリックしてください。';
results.appendChild(message);

このコードは、以下の処理を行います。

  1. image-resultsクラスを持つ要素を取得し、画像検索結果ページのDOMを取得します。
  2. view-image-buttonクラスを持つ要素をすべて取得し、「画像を表示」ボタンを取得します。
  3. 取得したボタンをすべてループ処理し、DOMから削除します。
  4. 画像を表示するための代替メッセージを含む要素を作成し、DOMに追加します。

HTMLとCSSコードは、このメッセージやリダイレクト先のページのデザインを調整するために使用されます。

Google Imageless Buttons拡張機能は、以下の点に注意する必要があります。

  • 著作権侵害のリスクを完全に排除するものではありません。
  • 画像の表示に時間がかかる場合があります。
  • 一部のウェブサイトでは、拡張機能が正しく動作しない場合があります。



Google Imageless Buttons サンプルコード

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Google Imageless Buttons サンプル</title>
</head>
<body>
  <h1>Google Imageless Buttons サンプル</h1>
  <p>以下の画像は、「画像を表示」ボタンが削除されています。サムネイルをクリックすると、元のページに移動します。</p>
  <div class="image-results">
    <a href="https://www.example.com/image1.jpg">
      <img src="https://www.example.com/image1.jpg" alt="Image 1">
    </a>
    <a href="https://www.example.com/image2.jpg">
      <img src="https://www.example.com/image2.jpg" alt="Image 2">
    </a>
  </div>
  <script src="script.js"></script>
</body>
</html>
const results = document.querySelector('.image-results');
const viewImageButtons = results.querySelectorAll('.view-image-button');

for (const button of viewImageButtons) {
  button.parentNode.removeChild(button);
}

const message = document.createElement('p');
message.textContent = '画像を表示するには、サムネイルをクリックしてください。';
results.appendChild(message);
.image-results {
  display: flex;
  flex-wrap: wrap;
}

.image-results img {
  margin: 10px;
  width: 200px;
  height: 200px;
}

.image-results p {
  margin: 10px;
}
  1. CSSファイルで、画像検索結果とメッセージのスタイルを設定します。

このサンプルコードは、基本的な機能のみを実装しています。

  • 実際の拡張機能では、以下の機能を追加する必要があります。
    • 画像の著作権情報を表示する機能
    • 特定のウェブサイトで拡張機能を無効にする機能
    • 拡張機能の設定画面



Google Imageless Buttons 以外の方法

ユーザー設定

Google Chrome では、画像検索結果の表示設定を変更することができます。

手順:

  1. Google Chrome を開き、画像検索を行います。
  2. 検索結果画面の右上にある歯車アイコンをクリックします。
  3. 表示されるメニューから、「検索設定」を選択します。
  4. 「画像」タブを開きます。
  5. 「画像を表示する」項目で、「表示しない」を選択します。
  6. 「保存」ボタンをクリックします。

この設定を適用すると、すべての画像検索結果で「画像を表示」ボタンが表示されなくなります。

ブラウザ拡張機能

Google Imageless Buttons 以外にも、画像検索結果から画像を表示するボタンを削除するブラウザ拡張機能がいくつかあります。

これらの拡張機能は、Chrome ウェブストアから無料でダウンロードできます。

Greasemonkey は、ウェブページのJavaScriptコードを書き換えることができるブラウザ拡張機能です。

Greasemonkey を使用して、画像検索結果から「画像を表示」ボタンを削除するには、以下の手順が必要です。

  1. Greasemonkey をインストールします。

Greasemonkey スクリプトは、https://userscripts.org/ などのウェブサイトからダウンロードできます。

画像検索結果から画像を表示するボタンを削除する方法は、個々のニーズに合わせて選択してください。


javascript html css


URL 解析の便利なツール 3 選! JavaScript でできること

URL を解析するには、いくつかの方法があります。最も一般的な方法は、URL オブジェクトと location オブジェクトを使用する方法です。URL オブジェクトは、URL を表すために使用されます。このオブジェクトには、ホスト名、パス、クエリ文字列、ハッシュフラグメントなどのプロパティがあります。URL を解析するには、以下の手順を行います。...


jQuery .each() で逆順ループする方法:初心者から上級者まで

jQuery で逆順ループを実現するには、いくつかの方法があります。以下に代表的な方法をいくつか紹介します。each() メソッドの最初の引数には、ループ処理する要素の配列またはオブジェクトを指定します。この引数を逆順に並べ替えることで、逆順ループを実現できます。...


JavaScript/jQuery/Google Chromeで要素が存在するまで待機する方法

Ajax通信でデータを取得した後、そのデータに基づいて要素を生成する場合画像が読み込まれるまで待機してから処理を行う場合DOM操作を行う前に、要素が完全にレンダリングされるまで待機する場合ここでは、JavaScript、jQuery、Google Chrome DevTools を用いて、要素が存在するまで待機する方法を解説します。...


JavaScript: オブジェクトの奥底まで探る!全てのプロパティ値を取得するテクニック集

for. ..in ループ最も基本的な方法は、for. ..inループを使用して、オブジェクトのプロパティをすべて反復処理する方法です。以下のコード例のように、プロパティ名を取得し、そのプロパティ名を使って値を取得します。このコードは以下の出力を表示します。...


React Router ハッシュフラグメントからクエリパラメータを取得する方法

React Router は、React アプリケーションでルーティングと URL 管理を行うためのライブラリです。ハッシュフラグメントは、URL の "#" 記号の後に続く部分であり、クエリパラメータを含めるために使用できます。このチュートリアルでは、React Router ハッシュフラグメントからクエリパラメータを取得する方法を説明します。...


SQL SQL SQL SQL Amazon で見る



JavaScriptフレームワークでトグルボタンを作る

ここでは、jQuery、HTML、CSSを使ってトグルボタンを作る方法を解説します。まず、HTMLでボタンの要素を作成します。id 属性は、JavaScriptでボタンを識別するために使用します。次に、CSSでボタンのスタイルを設定します。