JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】アラートボックスに画像を表示する方法|jQueryでカスタムアラートを作ろう

JavaScriptの標準的なalert()メソッドは、テキストメッセージしか表示できず、画像を直接表示することはできません。しかし、HTML・CSS・jQueryを組み合わせてカスタムアラートボックスを作成すれば、メッセージと一緒に自由に画像を表示できます。

以下のサンプルコードでは、カスタムアラートボックス内にアラート用の画像を追加しています。ページ上の「Click Me」ボタンをクリックするとアラートボックスが表示され、「OK」ボタンを押すと閉じる仕組みです。

実装例(サンプルコード)

<!DOCTYPE html>
<html>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
      </script>
      <script>
         function functionAlert(msg, myYes) {
            var confirmBox = $("#confirm");
            confirmBox.find(".message").text(msg);
            confirmBox.find(".yes").unbind().click(function() {
               confirmBox.hide();
            });
            confirmBox.find(".yes").click(myYes);
            confirmBox.show();
         }
      </script>
      <style>
         #confirm {
            display: none;
            background-color: #FFFFFF;
            border: 1px solid #aaa;
            position: fixed;
            width: 250px;
            left: 50%;
            margin-left: -100px;
            padding: 6px 8px 8px;
            box-sizing: border-box;
            text-align: center;
         }
         #confirm button {
            background-color: #48E5DA;
            display: inline-block;
            border-radius: 5px;
            border: 1px solid #aaa;
            padding: 5px;
            text-align: center;
            width: 80px;
            cursor: pointer;
         }
         #confirm .message {
            text-align: left;
         }
      </style>
   </head>
   <body>
      <div id="confirm">
         <div class="message">This is a warning message.</div>
         <button class="yes">OK</button>
         <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSNjyHBjM74KLxvROpx34zsT4zPzMWHMHz4zzJwAtemXGglsjtA"
             width="120" height="70"/>
      </div>
      <input type="button" value="Click Me" onclick="functionAlert();" />
   </body>
</html>

コードのポイント解説

1. カスタムアラートボックスの構造

#confirmというIDを持つdiv要素がアラートボックスの本体です。内部には、メッセージを表示する.messageクラスの領域、「OK」ボタンとなる.yesクラスのbutton要素、そして表示したい<img>要素を配置しています。このようにHTMLで自由にマークアップできるため、画像以外にもリンクやアイコンなどを好きな場所に追加できます。

2. 表示・非表示の切り替え

CSSでdisplay: none;を指定することで、初期状態ではアラートボックスを非表示にしています。functionAlert()関数が呼び出されると、jQueryのshow()メソッドによってボックスが画面に現れます。逆に「OK」ボタンがクリックされた際はhide()メソッドで再び非表示に戻す仕組みです。

3. 画面中央への固定表示

position: fixed;left: 50%;、さらにネガティブマージン(margin-left: -100px;)を組み合わせることで、スクロールしても画面中央にアラートボックスが固定表示されるようにしています。ボタンにはborder-radiusによる角丸やcursor: pointer;を設定し、クリックできることが直感的にわかるデザインにしています。

このように、標準のalert()の代わりに独自のダイアログを作成すれば、画像はもちろん、レイアウトや配色も自由にカスタマイズでき、より柔軟で魅力的なユーザーインターフェースを実現できます。

  1. JavaScriptのアラートボックス(alert)のタイトルは変更できる?カスタムモーダルで実現する方法

    結論から言うと、セキュリティ上の制約により、JavaScriptの標準的なalert()メソッドで表示されるアラートボックスのタイトルを編集することはできません。なぜタイトルが変更できないのかブラウザ標準のアラートボックスは、悪意あるサイトがOSやブラウザ自体のダイアログに偽装してユーザーを騙すことを防ぐため、ブラウザ側で厳しく管理されています。そのため、タイトル部分には自動的にドメイン名や「このページから」といった情報が表示され、開発者が自由に書き換えることはできない仕組みになっています。解決策:カスタムモーダルダイアログを使うすべてのWebブラウザで一貫した見た目のアラートボックスを実現し

  2. JavaScriptで画像をBlobに変換する方法【サンプルコード&解説つき】

    JavaScriptで画像をBlobに変換するには?Webアプリケーション開発では、画像などのファイルデータを「Blob(Binary Large Object:バイナリラージオブジェクト)」として扱いたい場面が多くあります。たとえば、画像のアップロード処理やCanvasへの描画、サーバーへのデータ送信などがその代表例です。JavaScriptでは、fetch()メソッドとBlobオブジェクトを組み合わせることで、URLから取得した画像を簡単にBlobへ変換できます。以下に実際のサンプルコードを示します。サンプルコード<!DOCTYPE html> <html lang=&q