【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()の代わりに独自のダイアログを作成すれば、画像はもちろん、レイアウトや配色も自由にカスタマイズでき、より柔軟で魅力的なユーザーインターフェースを実現できます。
-
JavaScriptのアラートボックス(alert)のタイトルは変更できる?カスタムモーダルで実現する方法
結論から言うと、セキュリティ上の制約により、JavaScriptの標準的なalert()メソッドで表示されるアラートボックスのタイトルを編集することはできません。なぜタイトルが変更できないのかブラウザ標準のアラートボックスは、悪意あるサイトがOSやブラウザ自体のダイアログに偽装してユーザーを騙すことを防ぐため、ブラウザ側で厳しく管理されています。そのため、タイトル部分には自動的にドメイン名や「このページから」といった情報が表示され、開発者が自由に書き換えることはできない仕組みになっています。解決策:カスタムモーダルダイアログを使うすべてのWebブラウザで一貫した見た目のアラートボックスを実現し
-
JavaScriptで画像をBlobに変換する方法【サンプルコード&解説つき】
JavaScriptで画像をBlobに変換するには?Webアプリケーション開発では、画像などのファイルデータを「Blob(Binary Large Object:バイナリラージオブジェクト)」として扱いたい場面が多くあります。たとえば、画像のアップロード処理やCanvasへの描画、サーバーへのデータ送信などがその代表例です。JavaScriptでは、fetch()メソッドとBlobオブジェクトを組み合わせることで、URLから取得した画像を簡単にBlobへ変換できます。以下に実際のサンプルコードを示します。サンプルコード<!DOCTYPE html> <html lang=&q