【JavaScript】アラートボックスのボタンラベルを変更する方法
標準のalert()ではボタンラベルは変更できない
JavaScriptの標準的なalert()メソッドで表示されるアラートボックスは、ブラウザが提供するネイティブなダイアログです。そのため、表示される「OK」ボタンのラベルを自由に変更することはできません。
ボタンのテキストをカスタマイズしたい場合は、HTML・CSS・jQueryなどを組み合わせて独自のカスタムアラートボックスを作成する必要があります。
カスタムアラートボックスの実装例
以下は、アラートボックスの「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: #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: 100px;
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">Thank you for informing!</button>
</div>
<input type="button" value="Click Me" onclick="functionAlert();" />
</body>
</html>
コードのポイント
- functionAlert(msg, myYes):表示するメッセージと、ボタンクリック時に実行するコールバック関数を引数として受け取ります。
- #confirm:カスタムダイアログ本体です。初期状態では
display: none;により非表示になっており、関数が呼ばれたときにshow()で表示されます。 - .message:ダイアログに表示するメッセージを設定する要素です。
- .yes:ボタン要素です。
unbind()で以前登録されたイベントを解除してから、新しいクリックイベントを登録しています。これにより、呼び出しごとに異なる処理を安全に割り当てられます。
このように自前のダイアログを作成すれば、ボタンのラベルだけでなく、デザイン・色・配置・アニメーションなども自由にカスタマイズできます。ユーザーインターフェースの統一感を持たせたい場合にも、カスタムアラートボックスの活用がおすすめです。
-
JavaScriptでアラートボックスを作成する方法
アラートボックスとは? アラートボックス(Alert Box)とは、クリック、スクロール、テキスト入力などのユーザー操作に反応してポップアップ表示される小さなウィンドウのことです。主にユーザーへ問題や注意点を警告する目的で使われますが、単に情報をお知らせする用途でも広く活用されています。 よくある使用例として、フォームの送信ボタンをクリックしたものの、必須項目の入力を忘れてしまったケースが挙げられます。この場合、アラートボックスが自動的に表示され、問題の内容をユーザーに分かりやすく伝えることができます。 アラートボックスの作成方法 それでは、上のスクリーンショットと同じアラートボックスを実際
-
JavaScriptのアラートボックス(alert)のタイトルは変更できる?カスタムモーダルで実現する方法
結論から言うと、セキュリティ上の制約により、JavaScriptの標準的なalert()メソッドで表示されるアラートボックスのタイトルを編集することはできません。なぜタイトルが変更できないのかブラウザ標準のアラートボックスは、悪意あるサイトがOSやブラウザ自体のダイアログに偽装してユーザーを騙すことを防ぐため、ブラウザ側で厳しく管理されています。そのため、タイトル部分には自動的にドメイン名や「このページから」といった情報が表示され、開発者が自由に書き換えることはできない仕組みになっています。解決策:カスタムモーダルダイアログを使うすべてのWebブラウザで一貫した見た目のアラートボックスを実現し