Bagaimana cara mengedit judul kotak peringatan JavaScript?


168

Saya membuat lansiran JavaScript dengan kode berikut di laman C # .NET:

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

Ini menampilkan kotak peringatan dengan judul pos sebagai "Pesan dari halaman web".

Apakah mungkin untuk mengubah judul?


Saya pikir pertanyaannya adalah untuk JavaScript yang kompatibel dengan semua platform dan browser dan bukan untuk VBScript yang merupakan hal yang ketat untuk IE dan Windows sehingga penggunaannya terbatas hanya untuk Windows
UserTursty

2
kemungkinan rangkap dari Ubah Judul Peringatan Javascript
Sjoerd

2
Tahukah Anda, bahwa peringatan dapat dengan mudah dinonaktifkan oleh pengguna? Anda TIDAK BISA mengandalkan itu!
toesslab

Jawaban:


259

Tidak bisa.

Ini fitur keamanan / anti-phishing.


22
Meskipun ini adalah jawaban dan BENAR-BENAR benar, saya telah menentukan bahwa Anda dapat membuat versi lansiran Anda sendiri dan akan melakukan apa yang Anda inginkan. Modal sederhana dan mengesampingkan panggilan fungsi waspada.
Fallenreaper

1
Bagaimana ini fitur keamanan / anti-phishing? Saya ingin tahu, tidak berdebat.
Tim

1
@Tim Agaknya, akan lebih mudah untuk mensimulasikan situs web lain jika lansiran Anda tidak memberi tahu pengguna dari mana URL itu berasal; tidak mengizinkan penyesuaian ini memaksa JavaScript untuk memberi tahu pengguna bahwa itu bukan pesan yang sah.
Hydrothermal

@Hydrothermal Hanya ingin tahu, tidak bisakah perilaku lansiran disimulasikan oleh CSS sekarang dan jika demikian, apakah masih banyak ancaman untuk memungkinkan Anda mengubah judul lansiran modal?
Josh

6
@Josh Anda bisa mendekati dengan banyak kerja keras, tetapi peringatan browser asli memiliki perilaku yang tidak dapat disimulasikan, seperti membekukan sisa browser, mengambang di atas UI browser, dan berfungsi sebagai jendela terpisah yang dapat diseret keluar dari layar browser. Sangat sulit untuk membuat replika yang meyakinkan, terutama karena setiap peringatan browser terlihat berbeda.
Hydrothermal

65

Tidak, itu tidak mungkin. Anda dapat menggunakan kotak tanda javascript khusus.

Menemukan yang bagus menggunakan jQuery

jQuery Alert Dialogs (Lansiran, Konfirmasi, & Penggantian Prompt)


4
Terima kasih, tetapi saya tidak tertarik menggunakan kotak lansiran khusus
subash

20
Alasan Anda tidak dapat mengubah judul, adalah untuk mencegah situs web jahat dari menipu pengguna agar berpikir bahwa peringatan itu berasal dari OS mereka atau sesuatu yang lain.
benzado

1
CATATAN: Pengguna lain telah berusaha mengedit jawaban ini untuk menunjukkan bahwa tautan yang disediakan mengarah ke situs tempat malware terdeteksi.

Jangan tersinggung tapi peringatan itu terlihat sangat jelek. SweetAlert jauh lebih cantik dari ini.
shashwat

32

Anda dapat melakukan ini di 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>

(Meskipun, aku benar-benar berharap kamu tidak bisa.)


53
Kita semua mengharapkan hal yang sama
rahul

@ Chris Fulstow apa yang bisa menjadi solusi untuk pertanyaan ini
Tom

1
Saya suka vbscript, saya berharap vbscript akan distandarisasi bersama dengan javascript. dengan cara itu saya dapat skrip tanpa kebingungan sensitivitas kasus, dan semua browser populer akan mematuhi perintah saya MWHAHAHA
Ronnie Matthews

3
Wow komentar memiliki suara lebih banyak daripada jawaban ... untuk bagian kedua dari jawaban
Marvin Thobejane

11

Ganti fungsi javascript window.alert ().

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

Dengan ini, Anda dapat membuat sendiri alert() fungsi . Buat dialog cari 'keren' baru (dari beberapa elemen div).

Diuji bekerja di chrome dan webkit, tidak yakin orang lain.


1
apa someElementId? Tag yang saya maksud?
Pramod Setlur

1
someElementIdadalah id apa pun yang telah Anda setel elemen HTML Anda.
James P.

11

Saya menemukan Sweetalert ini untuk menyesuaikan javascript kotak header.

Sebagai contoh

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
Ya. SweeAlert bahkan lebih sederhana dari contoh Anda jika Anda mau. Saya baru saja membuat <script link ke perpustakaan mereka dan mengganti kata "waspada" di kode saya dan itu dia! Terima kasih. Rekomendasi manis!
JustJohn

5

Untuk menjawab pertanyaan dalam hal bagaimana Anda menanyakannya.

Ini sebenarnya SANGAT mudah (di Internet Explorer, setidaknya), saya melakukannya dalam 17,5 detik.

Jika Anda menggunakan skrip khusus yang disediakan cxfx: (letakkan di file apsx Anda)

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

Anda kemudian dapat memanggilnya sama seperti Anda memanggil lansiran biasa. Ubah saja kode Anda sebagai berikut.

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

Semoga itu bisa membantu Anda, atau orang lain!


2
Bekerja untuk saya dengan IE, tetapi tidak untuk Firefox. Terima kasih yang sama, cepat dan kotor tetapi mungkin terbukti bermanfaat.
Darth Continent

1
@ Darth. Yo saya proly seharusnya menyebutkan itu. Ini menggunakan VBScript. Anda harus google cara mendapatkan VBScript agar berjalan di firefox.
kralco626

2
@ Dath - PS Saya tidak tahu apakah ada cara untuk menjalankan VBScript di firefox. Saya akan membuat topik lain yang disebut sesuatu seperti cara menjalankan skrip vb ini di firefox dan memposting kode yang saya berikan kepada Anda di atas dan melihat apakah ada yang bisa membuat apa pun.
kralco626

2
@Arth - Meskipun saya akan menggunakan solusi Rahul. Cukup gunakan beberapa JQuery itu sangat mudah!
kralco626

3
Dua downvotes, satu upvote ... tapi tidak ada komentar untuk mengatakan mengapa saya downvoted ... Saya pikir ini adalah solusi yang valid ... setidaknya di IE ...: /
kralco626

4

Ada 'retasan' yang cukup bagus di sini - https://stackoverflow.com/a/14565029 di mana Anda menggunakan iframe dengan src kosong untuk menghasilkan pesan peringatan / konfirmasi - tidak berfungsi di Android (demi keamanan) - tetapi mungkin sesuai dengan skenario Anda.


2

Anda dapat melakukan sedikit penyesuaian untuk meninggalkan garis kosong di bagian atas.

Seperti ini.

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

1

Ya, Anda bisa mengubahnya. jika Anda memanggil fungsi VBscript dalam Javascript.

Ini adalah contoh sederhana

<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 tidak akan berfungsi pada FF dan GC karena mereka tidak mendukung VBScript.
atsurti

1

Ketika Anda memulai atau hanya bergabung dengan proyek berdasarkan aplikasi web, desain antarmuka mungkin bagus. Kalau tidak, ini harus diubah. Untuk aplikasi Web 2.0 Anda akan bekerja dengan konten dinamis, banyak efek dan hal-hal lainnya. Semua hal ini baik-baik saja, tetapi tidak ada yang berpikir untuk menata kotak tanda JavaScript dan konfirmasi. Inilah cara mereka, .. benar-benar dinamis, JS dan CSS didorong Buat file html sederhana

<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>

Kemudian buat nama file js sederhana jsConfirmStyle.js. Berikut adalah kode js sederhana

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();

}

Anda dapat mengunduh kode sumber lengkap dari sini


1
can u make a demu plz
X-Coder

0

Saya memiliki masalah serupa ketika saya ingin mengubah judul kotak dan judul tombol dari kotak konfirmasi default. Saya telah menggunakan plugin dialog Jquery Ui http://jqueryui.com/dialog/#modal-confirmation

Ketika saya memiliki yang berikut:

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

Saya telah mengubahnya menjadi:

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');
}

Dapat terlihat bekerja di sini https://jsfiddle.net/5aua4wss/2/

Semoga itu bisa membantu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.