JavaScript警告ボックスのタイトルを編集する方法は?


168

C#.NETページで次のコードを使用してJavaScriptアラートを生成しています。

Response.Write("<script language=JavaScript> alert('Hi select a valid date'); </script>");

見出しのタイトルが「Webページからのメッセージ」である警告ボックスが表示されます。

タイトルを変更することは可能ですか?


問題は、すべてのプラットフォームとブラウザと互換性のあるJavaScriptに関するものであり、厳密にIEおよびWindowsのものであるVBScriptに対するものではなかったため、その使用はWindowsのみに制限されます
UserTursty


2
ユーザーがアラートを非常に簡単に無効にできることを知っていますか?あなたはそれらに頼るべきではありません!
toesslab 2014

回答:


259

いいえ、できません。

これはセキュリティ/フィッシング対策機能です。


22
これは答えであり、事実ですが、独自のバージョンのアラートを作成することができ、それはあなたが望むことを行うと私は判断しました。単純なモーダルで、アラート関数呼び出しをオーバーライドします。
Fallenreaper 2013年

1
これはセキュリティ/フィッシング対策機能ですか?私は好奇心旺盛で、主張はしていません。
Tim

1
@Timおそらく、アラートがユーザーの発信元のURLをユーザーに通知しなかった場合、別のWebサイトをシミュレートする方が簡単でしょう。このカスタマイズを禁止すると、JavaScriptはユーザーに正当なメッセージではないことを通知します。
2015年

@Hydrothermal好奇心から、CSSでアラートの動作をシミュレートできません。もしそうなら、モーダルアラートのタイトルを変更できるようにするのは、まだ脅威ですか?
Josh、

6
@Josh多くのハードワークで近づく可能性がありますが、ネイティブブラウザーアラートは、ブラウザーの残りの部分をフリーズしたり、ブラウザーのUIの上にフローティングしたり、別のウィンドウとして機能するなど、シミュレーションできない動作をしますブラウザ画面の外にドラッグできます。特に各ブラウザのアラートが異なって見えるため、説得力のあるレプリカを作成することは非常に困難です。
水熱水2015

65

いいえ、できません。カスタムのJavaScript警告ボックスを使用できます。

jQueryを使用して良いものを見つけました

jQueryアラートダイアログ(アラート、確認、プロンプトの置換)


4
uに感謝しますが、カスタムアラートボックスの使用には興味がありません
-subash

20
ちなみに、タイトルを変更できないのは、悪意のあるWebサイトがユーザーをだまして、OSやその他の何かからのアラートだと思わせないようにするためです。
ベンザド2009

1
注:別のユーザーがこの回答を編集して、提供されたリンクがマルウェアが検出されたサイトに移動したことを示しています。

問題はありませんが、これらのアラートは非常に醜く見えます。SweetAlertはこれよりはるかにきれいです。
shashwat 2017

32

あなたはIEでこれを行うことができます:

<script language="VBScript">
Sub myAlert(title, content)
      MsgBox content, 0, title
End Sub
</script>

<script type="text/javascript">
myAlert("My custom title", "Some content");
</script>

(ただし、できなかったことを本当に願っています。)


53
私たちは皆同じことを望みます
-rahul

@Chris Fulstow この質問の
Tom

1
私はvbscriptが大好きです。vbscriptがjavascriptとともに標準化されることを願っています。そうすれば、大文字と小文字を区別することなくスクリプトを作成でき、人気のあるすべてのブラウザは私のコマンドMWHAHAHA
Ronnie Matthewsに

3
なんと

11

javascript window.alert()関数をオーバーライドします。

window.alert = function(title, message){
    var myElementToShow = document.getElementById("someElementId");
    myElementToShow.innerHTML = title + "</br>" + message; 
}

これにより、独自のalert()関数を作成できます。(いくつかのdiv要素から)新しい「格好良い」ダイアログを作成します。

chromeとwebkitで動作することをテスト済み。


1
なにsomeElementId?どのタグを意味しますか?
Pramod Setlur 2013

1
someElementIdHTML要素に設定したIDです。
James P.

11

ヘッダーボックスのJavaScriptをカスタマイズするために、このSweetalertを見つけました。

例えば

swal({
  title: "Are you sure?",
  text: "You will not be able to recover this imaginary file!",
  type: "warning",
  showCancelButton: true,
  confirmButtonColor: "#DD6B55",
  confirmButtonText: "Yes, delete it!",
  closeOnConfirm: false
},
function(){
  swal("Deleted!", "Your imaginary file has been deleted.", "success");
});

1
うん。SweeAlertは、必要に応じて、例よりもさらに簡単です。私は彼らのライブラリへの<scriptリンクを作成し、私のコードの「alert」という単語を置き換えただけでした!ありがとうございました。甘いオススメ!
JustJohn、

5

どのように質問したかという点で質問に答えるため。

これは実際には非常に簡単です(少なくともInternet Explorerでは)、17.5秒で完了しました。

cxfxが提供したカスタムスクリプトを使用する場合:(apsxファイルに配置します)

<script language="VBScript">
Sub myAlert(title, content)
MsgBox content, 0, title 
End Sub 
</script>

その後、通常のアラートを呼び出すのと同じように呼び出すことができます。コードを次のように変更するだけです。

Response.Write("<script language=JavaScript> myAlert('Message Header Here','Hi select a valid date'); </script>");

あなたや他の誰かを助けることを願っています!


2
IEで動作しますが、Firefoxでは動作しません。おかげで同じように、迅速かつ汚いですが、役に立つかもしれません。
ダース大陸

1
@ダース。言っておくべきだったよ。VBScriptを使用しています。VBScriptをFirefoxで実行する方法をググる必要があります。
kralco626

2
@ Dath-PS FirefoxでVBScriptを実行する方法があるかどうかわかりません。このvbスクリプトをfirefoxで実行する方法などの別のトピックを作成し、上記で提供したコードを投稿して、誰かが何か思いつくかどうかを確認します。
kralco626

2
@ダース-私はラフルのソリューションを使用しますが。いくつかのJQueryを使用するだけで、とても簡単です!
kralco626

3
2つの反対票、1つの賛成票...しかし、なぜ反対票が投じられるのかについてのコメントはありません...これは有効な解決策だと思います...少なくともIEでは...:/
kralco626 '26

4

-ここでは非常に素敵な「ハック」ありますhttps://stackoverflow.com/a/14565029アラート/確認メッセージを生成するために、空のSRCとのiframeを使用して-それは(セキュリティのため)Android上で仕事をしません-しかし、あなたのシナリオに合うかもしれません。


2

少し調整して、上部に空白行を残すことができます。

このような。

        <script type="text/javascript" >
            alert("USER NOTICE "  +"\n"
            +"\n"
            +"New users are not allowed to work " +"\n"
            +"with that feature.");
        </script>

1

はい、変更できます。Javascript内でVBscript関数を呼び出す場合。

ここに簡単な例があります

<script>

function alert_confirm(){

      customMsgBox("This is my title","how are you?",64,0,0,0);
}

</script>


<script language="VBScript">

Function customMsgBox(tit,mess,icon,buts,defs,mode)
   butVal = icon + buts + defs + mode
   customMsgBox= MsgBox(mess,butVal,tit)
End Function

</script>

<html>

<body>
<a href="javascript:alert_confirm()">Alert</a>
</body>

</html>

1
@ManikandanSethurajuはVBScriptをサポートしていないため、FFおよびGCでは機能しません。
atsurti 2013年

1

Webアプリケーションに基づいてプロジェクトを起動したり、プロジェクトに参加したりする場合、インターフェイスのデザインはおそらく良いでしょう。それ以外の場合は変更する必要があります。Web 2.0アプリケーションでは、動的なコンテンツ、多くのエフェクト、およびその他のものを使用します。これらはすべて問題ありませんが、JavaScriptアラートをスタイルしてボックスを確認することは考えられていません。ここに彼らのやり方があります..完全に動的、JSおよびCSS駆動型シンプルなhtmlファイルを作成

<html>
 <head>
   <title>jsConfirmSyle</title>
   <meta http-equiv="Content-Style-Type" content="text/css" />
   <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <script type="text/javascript" src="jsConfirmStyle.js"></script>
    <script type="text/javascript">

      function confirmation() {
       var answer = confirm("Wanna visit google?")
       if (answer){
       window.location = "http://www.google.com/";
       }
     }    

    </script>
    <style type="text/css">
     body {
      background-color: white;
      font-family: sans-serif;
      }
    #jsconfirm {
      border-color: #c0c0c0;
      border-width: 2px 4px 4px 2px;
      left: 0;
     margin: 0;
     padding: 0;
     position: absolute;
    top: -1000px;
    z-index: 100;
   }

  #jsconfirm table {
   background-color: #fff;
   border: 2px groove #c0c0c0;
   height: 150px;
   width: 300px;
  }

   #jsconfirmtitle {
  background-color: #B0B0B0;
  font-weight: bold;
  height: 20px;
  text-align: center;
}

 #jsconfirmbuttons {
height: 50px;
text-align: center;
 }

#jsconfirmbuttons input {
background-color: #E9E9CF;
color: #000000;
font-weight: bold;
width: 125px;
height: 33px;
padding-left: 20px;
}

#jsconfirmleft{
background-image: url(left.png);
}

#jsconfirmright{
background-image: url(right.png);
 }
 < /style>
  </head>
 <body>
<p><br />
<a href="#"
onclick="javascript:showConfirm('Please confirm','Are you really really sure to visit    google?','Yes','http://www.google.com','No','#')">JsConfirmStyled</a></p>
<p><a href="#" onclick="confirmation()">standard</a></p>

</body>
</html>

次に、単純なjsファイル名jsConfirmStyle.jsを作成します。ここに簡単なjsコードがあります

ie5=(document.getElementById&&document.all&&document.styleSheets)?1:0;
nn6=(document.getElementById&&!document.all)?1:0;

 xConfirmStart=800;
 yConfirmStart=100;

  if(ie5||nn6) {
  if(ie5) cs=2,th=30;
  else cs=0,th=20;
   document.write(
    "<div id='jsconfirm'>"+
        "<table>"+
            "<tr><td id='jsconfirmtitle'></td></tr>"+
            "<tr><td id='jsconfirmcontent'></td></tr>"+
            "<tr><td id='jsconfirmbuttons'>"+
                "<input id='jsconfirmleft' type='button' value='' onclick='leftJsConfirm()' onfocus='if(this.blur)this.blur()'>"+
                "&nbsp;&nbsp;"+
                "<input id='jsconfirmright' type='button' value='' onclick='rightJsConfirm()' onfocus='if(this.blur)this.blur()'>"+
            "</td></tr>"+
        "</table>"+
    "</div>"
  );
   }

 document.write("<div id='jsconfirmfade'></div>");


 function leftJsConfirm() {
  document.getElementById('jsconfirm').style.top=-1000;
  document.location.href=leftJsConfirmUri;
 }
function rightJsConfirm() {
document.getElementById('jsconfirm').style.top=-1000;
document.location.href=rightJsConfirmUri;
 }
function confirmAlternative() {
if(confirm("Scipt requieres a better browser!"))       document.location.href="http://www.mozilla.org";
}

leftJsConfirmUri = '';
rightJsConfirmUri = '';

  /**
   * Show the message/confirm box
  */
    function       showConfirm(confirmtitle,confirmcontent,confirmlefttext,confirmlefturi,confirmrighttext,con      firmrighturi)  {
document.getElementById("jsconfirmtitle").innerHTML=confirmtitle;
document.getElementById("jsconfirmcontent").innerHTML=confirmcontent;
document.getElementById("jsconfirmleft").value=confirmlefttext;
document.getElementById("jsconfirmright").value=confirmrighttext;
leftJsConfirmUri=confirmlefturi;
rightJsConfirmUri=confirmrighturi;
xConfirm=xConfirmStart, yConfirm=yConfirmStart;
if(ie5) {
    document.getElementById("jsconfirm").style.left='25%';
    document.getElementById("jsconfirm").style.top='35%';
}
else if(nn6) {
    document.getElementById("jsconfirm").style.top='25%';
    document.getElementById("jsconfirm").style.left='35%';
}
else confirmAlternative();

}

ここから完全なソースコードをダウンロードできます


1
デミュプラザを作ることができます
X-Coder

0

デフォルトの確認ボックスのボックスのタイトルとボタンのタイトルを変更するときにも、同様の問題が発生しました。Jquery Uiダイアログプラグインhttp://jqueryui.com/dialog/#modal-confirmationに行きました

私が以下を持っていたとき:

function testConfirm() {
  if (confirm("Are you sure you want to delete?")) {
    //some stuff
  }
}

私はそれを次のように変更しました:

function testConfirm() {

  var $dialog = $('<div></div>')
    .html("Are you sure you want to delete?")
    .dialog({
      resizable: false,
      title: "Confirm Deletion",
      modal: true,
      buttons: {
        Cancel: function() {
          $(this).dialog("close");
        },
        "Delete": function() {
          //some stuff
          $(this).dialog("close");
        }
      }
    });

  $dialog.dialog('open');
}

ここで動作しているのを見ることができますhttps://jsfiddle.net/5aua4wss/2/

お役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.