- ベストアンサー
警告マークが表示させない
JavaScriptでonClickしたときあるデータを子ウインド画面で表示されることできますが、その画面に"!"マークを出さないようにするにはどんな方法あるのかな?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo1さんも言っているように、子ウィンドウではなく、アラート表示のことですよね? アラートはその名の通り「警告」の意味なので!マークが表示されるようになっています。そのままで!マークを消すのは大変(無理?)だと思われます。 似たようなものでよければ、いろいろな方法があると思いますが、そのいくつかを・・・ 1)警告の代りに用意されている、確認ダイアログを使う (!が?に代るだけともいえるが・・・) 2)ご質問にもあるように、別ウィンドウを利用する。 通常は、別のURLを表示するために用いられますが、これを利用して似たようなことは可能です。 3)divタグの表示、非表示を利用する 一般にロールオーバーなどにも利用されていますが、position:abusolutoにしておくことで、ダイアログ的にも使えます。 イメージを利用すれば、見掛けも自由に変えられますし、もちろん表示内容も変えられます。 (いろいろやると、それなりのスクリプトになりますが・・・) 参考までに、以下に <html> <head> <script type="text/javascript"> var m1='ごたごたとしたメッセージ'; var m2='<div style="width:100%;text-align:right;"><input type="button"'; m2+=' value=" □ 閉じる " onclick="hide()"><hr size=1></div>'; function disp(n) { switch(n){ //DIVによるメッセージ表示 case 1: if (v=document.getElementById('mes1')){ v.style.display='block'; } else { var d=document.createElement('div'); d.id="mes1"; d.innerHTML=m2+'<p>'+m1; with(d.style){ position='absolute'; padding='4px'; top='30px'; left='30px'; width='250px'; height='110px'; border='7px ridge LightSteelBlue'; backgroundColor='GhostWhite'; } document.body.appendChild(d); } return true; //確認ダイアログによる表示 case 2: window.confirm(m1); return true; //サブウィンドウのメッセージ表示 case 3: var w=window.open("","sub1","width=300,height=100,top=250px,left=50px"); w.focus(); w.document.open(); w.document.write('<html><p>'+m1); w.document.close(); } } //DIV消去 function hide(){document.getElementById('mes1').style.display='none';} </script> </head> <body> <p>文章がなんたらかんたら書いてあって <p>文字だけじゃなくて、図なんかもあったりして。<br> <img src="" border=1 width=300 height=100 alt="図がないけどね"> <p>とにかく、いろいろとたくさんあるのさ。 <p><input type="button" value=" DIV表示 " onclick="disp(1)"> <input type="button" value=" Dialog表示 " onclick="disp(2)"> <input type="button" value=" Window表示 " onclick="disp(3)"> </body> </html>
その他の回答 (2)
- t_netbug
- ベストアンサー率34% (15/44)
こんにちは! JavaScriptとは少し離れてしまいますが…。 下記のような方法であれば、一応実現は可能といえば可能です…。 但し、OS環境に依存されるのとIEのバージョンにより、あまり良い方法ではないかもしれません。 <script type="text/vbscript"> function AM(message,info) Set hTable = createObject("Scripting.Dictionary") hTable.add "null" ,0 hTable.add "critical" ,16 hTable.add "question" ,32 hTable.add "exclamation",48 hTable.add "infomation" ,64 if(hTable.Item(info)="")then:info = "null" a = MsgBox(message,vbOkOnly+hTable.Item(info),"Microsoft Internet Explorer") End function </script> <script type="text/javascript"> window.onload = function(){ AM('a','critical'); } </script> 参考になるかは不明ですが、Flexを使う事でカスタマイズされたalertを使うことも可能のようです。 http://blog.livedoor.jp/hiroki0907/archives/51103014.html
お礼
ご回答ありがとうございました。 ダメみたいですね、実行した見たが確かに"!"が出ないが"×"が出てしますね(IEの場合)、(firefoxの場合)は何もでない、エラーコンソールでみると(AM is not defined)AM未定義といわれました。
- yyr446
- ベストアンサー率65% (870/1330)
子ウインド画面で表示って、alert()関数の事ですね。だとすると無理です。 これはブラウザーが、alert()関数を解釈して、ブラウザーが準備した小窓を出しているからです。 JAVASCRIPTがオープンした小窓なら、どこかで!をセットしているはずです。
お礼
ありがとうございます。 また見つけ続くしかないようね。
お礼
ご回答ありがとうございました。 いつもお世話になっております。 そのとおりですね、<div表示>のような結果になりたいですね、実行してみて思った結果とおりになりました(^..^)。 感謝感謝!!