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

【保存版】JavaScriptのalert()をおしゃれなカスタムアラートボックスに置き換える方法

標準のJavaScriptアラート(alert())は、ブラウザごとにデザインが固定されており、見た目を自由にカスタマイズできません。そこで便利なのが、jQueryとCSSを組み合わせた独自のアラートボックスです。本記事では、標準のalert()よりも洗練された印象を与えられるカスタムアラートボックスの作り方を、サンプルコード付きで解説します。

実装例

以下のコードでは、jQueryでメッセージの表示とボタンのクリックイベントを制御し、CSSでデザインを整えています。コードをそのままHTMLファイルとして保存し、ブラウザで開けばすぐに動作を確認できます。

<!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: #91FF00;
            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>
      </div>
      <input type = "button" value = "Click Me" onclick = "functionAlert();" />
   </body>
</html>

コードのポイント

  • functionAlert(msg, myYes):表示したいメッセージと、「OK」ボタンが押されたときに実行するコールバック関数を受け取るカスタム関数です。引数なしでも呼び出せます。
  • #confirm:初期状態では display: none で非表示になっており、関数が呼ばれたタイミングで show() によって表示されます。
  • position: fixed + left: 50%:この組み合わせにより、スクロール位置に関係なく画面中央にアラートボックスが配置されます。
  • unbind():ボタンにクリックイベントが重複して登録されるのを防ぎ、何度呼び出しても正しく動作するようにしています。

デザインのカスタマイズ例

背景色(background-color)、ボタンの色、角丸(border-radius)、幅などはすべてCSSで制御されているため、値を書き換えるだけでサイトのテーマに合わせたデザインへ簡単に変更できます。また、メッセージ部分は .message クラス経由で動的に差し替えられるので、確認ダイアログや警告表示など、さまざまな用途に流用可能です。

標準のalert()と違い、ページのデザインを損なわずに統一感のあるUIを実現できるのが大きなメリットです。ぜひ自分のプロジェクトに取り入れてみてください。

  1. JavaScriptでアラートボックスを作成する方法

    アラートボックスとは? アラートボックス(Alert Box)とは、クリック、スクロール、テキスト入力などのユーザー操作に反応してポップアップ表示される小さなウィンドウのことです。主にユーザーへ問題や注意点を警告する目的で使われますが、単に情報をお知らせする用途でも広く活用されています。 よくある使用例として、フォームの送信ボタンをクリックしたものの、必須項目の入力を忘れてしまったケースが挙げられます。この場合、アラートボックスが自動的に表示され、問題の内容をユーザーに分かりやすく伝えることができます。 アラートボックスの作成方法 それでは、上のスクリーンショットと同じアラートボックスを実際

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

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