JavaScript uyarı kutusu başlığı nasıl düzenlenir?


169

C # .NET sayfasında aşağıdaki kod ile bir JavaScript uyarısı üretiyorum:

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

Başlık başlığını "Web sayfasından mesaj" olarak gösteren bir uyarı kutusu görüntüler.

Başlığı değiştirmek mümkün müdür?


Bence soru tüm platformlar ve tarayıcılar ile uyumlu olan ve kesinlikle IE ve Windows şey olan VBScript için değil, bu yüzden kullanımı sadece Windows ile sınırlı olduğunu düşünüyorum
UserTursty


2
Uyarıların kullanıcı tarafından kolayca devre dışı bırakılabileceğini biliyor musunuz? Bunlara güvenmemelisiniz!
toesslab

Yanıtlar:


259

Hayır, yapamazsınız.

Bu bir güvenlik / kimlik avı önleme özelliğidir.


22
Bu bir yanıt ve IN FACT true olsa da, kendi uyarı sürümünüzü yapabileceğinizi ve istediğinizi yapacağınızı belirledim. Basit bir mod ve uyarı işlev çağrısını geçersiz kılma.
Fallenreaper

1
Bu nasıl bir güvenlik / kimlik avı koruması özelliği? Merak ediyorum, tartışmıyorum.
Tim

1
@Tim Muhtemelen, uyarılarınız kullanıcıya hangi URL'den kaynaklandığını söylemediyse başka bir web sitesini simüle etmek daha kolay olurdu; bu özelleştirmeye izin verilmemesi, JavaScript'i kullanıcıya yasal bir mesaj olmadığını söylemeye zorlar.
Hidrotermal

@ Hidrotermal Sadece meraktan, uyarı davranışı şimdi CSS tarafından simüle edilemez ve eğer öyleyse, kalıcı uyarı başlıklarını değiştirmenize izin vermek hala bir tehdit midir?
Josh

6
@Josh Çok zor işlerle yaklaşabilirsiniz, ancak yerel tarayıcı uyarıları, tarayıcının geri kalanını dondurmak, tarayıcı arayüzünün üstünde yüzen ve ayrı bir pencere gibi çalışmak gibi simüle edilemeyen davranışlara sahiptir. tarayıcı ekranından sürüklenebilir. Özellikle her tarayıcının uyarısı farklı göründüğünden, ikna edici bir kopya oluşturmak çok zordur.
Hidrotermal

65

Hayır, bu mümkün değil. Özel bir javascript uyarı kutusu kullanabilirsiniz.

JQuery kullanarak güzel bir tane buldum

jQuery Alert İletişim Kutuları (Uyarı, Onayla ve Bilgi İstemi Değişimleri)


4
Teşekkür ederim, ama özel uyarı kutusu kullanmakla ilgilenmiyorum
subash

20
Bu arada başlığı değiştirememenizin nedeni, kötü niyetli web sitelerinin kullanıcıyı uyarının işletim sistemlerinden veya başka bir şeyden olduğunu düşünmesi için kandırmasını önlemektir.
benzado

1
NOT: Başka bir kullanıcı, verilen bağlantının kötü amaçlı yazılımın tespit edildiği bir siteye yönlendirdiğini belirtmek için bu yanıtı düzenlemeye çalıştı.

Suç yok ama bu uyarılar çok çirkin görünüyor. SweetAlert bundan çok daha güzel.
shashwat

32

Bunu IE'de yapabilirsiniz:

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

(Yine de yapamamanı dilerdim.)


53
Hepimiz aynı şeyi diliyoruz
rahul

@Chris Fulstow Bu sorunun
Tom

1
Vbscript seviyorum, ben vbscript javascript ile birlikte standartlaştırmak isterdim. bu şekilde büyük / küçük harf duyarlılığı karışıklığı olmadan komut yazabilirim ve tüm popüler tarayıcılar komutlarıma itaat eder MWHAHAHA
Ronnie Matthews

3
Vay be bir yorum cevap daha fazla oy var ... cevabın ikinci bölümü için
Marvin Thobejane

11

Javascript window.alert () işlevini geçersiz kılın.

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

Bununla kendi alert()fonksiyonunuzu yaratabilirsiniz . Yeni bir 'havalı' görünümlü iletişim kutusu oluşturun (bazı div öğelerinden).

Chrome ve webkit'te çalışmayı test etti, başkalarından emin değilim.


1
nedir someElementId? hangi etiketi kastediyorum?
Pramod Setlur

1
someElementIdHTML öğenizi ayarladığınız kimliktir.
James P.

11

Başlık kutusu javascript özelleştirmek için bu Sweetalert bulundu .

Örneğin

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
Evet. SweeAlert isterseniz örneğinizden daha da basittir. Ben sadece kendi kütüphanesine bir <script link yaptım ve kodumda "uyarı" kelimesini değiştirdim ve orada oldu! Teşekkür ederim. Tatlı tavsiye!
JustJohn

5

Soruları nasıl sorduğunuza göre cevaplamak için.

Bu aslında gerçekten kolaydır (en azından Internet Explorer'da), 17.5 saniye içinde yaptım.

Cxfx tarafından sağlanan özel komut dosyasını kullanıyorsanız: (apsx dosyanıza yerleştirin)

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

Daha sonra normal uyarı olarak adlandırdığınız gibi arayabilirsiniz. Kodunuzu aşağıdaki şekilde değiştirmeniz yeterlidir.

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

Umarım sana yardımcı olur, ya da başka biri!


2
IE ile çalışır, ancak Firefox ile çalışmaz. Aynı, hızlı ve kirli teşekkürler ama yararlı olabilir.
Darth Continent

1
@ Darth. Yo bunu söylemeliydim. VBScript kullanıyor. firefox'ta çalıştırmak için VBScript'i nasıl alacağınızı google'a ihtiyacınız var.
kralco626

2
@ Dath - PS Muhtemelen firefox üzerinde VBScript çalıştırmak için bir yol olup olmadığını bilmiyorum. Firefox'ta bu vb komut dosyasını çalıştırmak ve size yukarıda verdiğim kodu göndermek ve herkesin bir şeyle gelip gelemeyeceğini görmek gibi bir şey denilen başka bir konu oluştururdum.
kralco626

2
@Darth - Rahul'ın çözümünü kullansam da. Sadece bazı JQuery kullanın gerçekten kolay!
kralco626

3
İki downvotes, bir upvote ... ama neden aşağı indirildiğimi söylemek için yorum yok ... Bence bu geçerli bir çözüm ... en azından IE'de ...: /
kralco626

4

Burada oldukça hoş bir 'hack' var - https://stackoverflow.com/a/14565029 burada uyarı / onay mesajı oluşturmak için boş bir src ile iframe kullandığınızda - Android'de çalışmıyor (güvenlik uğruna) - ancak senaryonuza uygun olabilir.


2

Üstte boş bir çizgi bırakmak için küçük bir ayar yapabilirsiniz.

Bunun gibi.

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

1

Evet değiştirebilirsiniz. Javascript içinde VBscript işlevini çağırırsanız.

İşte basit bir örnek

<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'i desteklemedikleri için FF ve GC üzerinde çalışmaz.
atsurti

1

Web uygulamalarına dayalı bir projeye başladığınızda veya yalnızca bir projeye katıldığınızda, arayüz tasarımı iyi olabilir. Aksi takdirde bu değiştirilmelidir. Web 2.0 uygulamaları için dinamik içerikler, birçok efekt ve diğer şeylerle çalışacaksınız. Tüm bunlar iyi, ancak kimse JavaScript uyarısını biçimlendirmeyi ve kutuları onaylamayı düşünmedi. İşte onlar, .. tamamen dinamik, JS ve CSS tahrik Basit html dosyası oluşturun

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

Sonra basit js dosya adı jsConfirmStyle.js oluşturun. İşte basit js kodu

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

}

Kaynak kodun tamamını buradan indirebilirsiniz


1
bir demu plz yapabilir miyim
X-Coder

0

Varsayılan onay kutusunun kutu başlığını ve düğme başlığını değiştirmek istediğimde de benzer bir sorun yaşadım. Jquery Ui iletişim kutusu eklentisine gittim http://jqueryui.com/dialog/#modal-confirmation

Aşağıdakilere sahip olduğumda:

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

Bunu şu şekilde değiştirdim:

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

Burada çalışırken görülebilir https://jsfiddle.net/5aua4wss/2/

Umarım yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.