Як відредагувати назву вікна попередження JavaScript?


168

Я створюю попередження JavaScript із таким кодом на сторінці C # .NET:

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

У ньому відображається вікно попередження із заголовком заголовка як "Повідомлення з веб-сторінки".

Чи можливо змінити заголовок?


Я думаю, що питання
стосувався

2
можливий дублікат зміни заголовка Javascript Alert
Sjoerd

2
Чи знаєте ви, що сповіщення можуть бути дуже легко відключені користувачем? НЕ слід покладатися на них!
toesslab

Відповіді:


259

Ні, ти не можеш.

Це функція безпеки / антифішингу.


22
Хоча це відповідь і відповідає дійсності, я визначив, що ви можете зробити свою власну версію попередження, і вона зробить все, що ви хочете. Простий модальний і перекриває виклик функції оповіщення.
Fallenreaper

1
Як ця функція безпеки / антифішингу? Мені цікаво, не сперечаюся.
Тим

1
@Tim Імовірно, було б простіше моделювати інший веб-сайт, якби ваші сповіщення не повідомили користувачеві, з якої URL-адреси вони походять; заборона цього налаштування змушує JavaScript повідомити користувачеві, що це не законне повідомлення.
Гідротермальна

@Hydrothermal Щойно з цікавості, чи не може моделювання поведінки сповіщень CSS моделювати зараз, і якщо так, чи все ще велика загроза дозволить вам змінити заголовки модальних попереджень?
Джош

6
@Josh Ви можете зблизитися з великою важкою роботою, але сповіщення про вбудований веб-переглядач мають поведінку, яку неможливо імітувати, наприклад, заморожування решти браузера, плаваючий поверх інтерфейсу браузера та функціонуючи як окреме вікно, яке можна перетягнути з екрана браузера. Створити переконливу репліку дуже важко, тим більше, що попередження кожного браузера виглядає по-різному.
Гідротермальний

65

Ні, це неможливо. Ви можете використовувати спеціальне поле попередження javascript.

Знайдено приємне за допомогою jQuery

Діалоги сповіщень jQuery (Оповіщення, підтвердження та оперативні заміни)


4
Дякую, але мені не цікаво користуватися спеціальним вікном сповіщення
subash

20
Причиною ви не можете змінити назву, до речі, полягає в тому, щоб запобігти шкідливим веб-сайтам не вводити користувачів у роздуми про те, що попередження надходить з їх ОС або чогось іншого.
бензадо

1
ПРИМІТКА. Інший користувач намагався редагувати цю відповідь, щоб вказати, що надане посилання призвело до сайту, де було виявлено зловмисне програмне забезпечення.

Без образи, але ці сповіщення виглядають дуже некрасиво. SweetAlert набагато гарніший за це.
shashwat

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, що може бути вирішенням цього питання
Том

1
Я люблю vbscript, я б хотів, щоб vbscript був стандартизований разом з javascript. таким чином я можу сценарій без плутанини чутливості до справи, і всі популярні броузери будуть підкорятися моїм командам MWHAHAHA
Ronnie Matthews

3
Вау коментар має більше голосів, ніж відповідь ... за відправку частини відповіді
Marvin Thobejane

11

Замініть функцію JavaScript window.alert ().

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

За допомогою цього ви можете створити власну alert()функцію. Створіть новий «крутий» діалоговий діалог (з деяких елементів div).

Випробуваний, працюючи в хромі та веб-кайті, не впевнений у інших.


1
що таке someElementId? який тег я маю на увазі?
Pramod Setlur

1
someElementIdце будь-який ідентифікатор, для якого ви встановили свій HTML-елемент
Джеймс П.

11

Я знайшов цей Sweetalert для налаштування javascript у заголовку.

Наприклад

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 ще простіше, ніж ваш приклад, якщо ви хочете. Я щойно зробив посилання <скрипт на їхню бібліотеку і замінив у своєму коді слово "попередження", і там воно було! Дякую. Солодка рекомендація!
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. ви повинні google, як змусити VBScript запускати у firefox.
kralco626

2
@ Dath - PS Я не знаю, чи є спосіб запустити VBScript на firefox. Я створив би іншу тему, яку називають щось на кшталт того, як запустити цей скрипт vb у firefox та опублікувати код, який я вам подав вище, і побачити, чи хтось може щось придумати.
kralco626

2
@Darth - Хоча я б застосував рішення Рахуля. Просто використовуйте деякі JQuery, це дуже просто!
kralco626

3
Дві голоси, одне звернення ... але жодних коментарів, щоб сказати, чому мене зволікають ... Я думаю, що це правильне рішення ... принаймні в IE ...: /
kralco626,

4

Тут є приємний "хак" - https://stackoverflow.com/a/14565029, де ви використовуєте iframe з порожнім src для створення повідомлення попередження / підтвердження - він не працює на Android (заради безпеки) - але може відповідати вашому сценарію.


2

Ви можете зробити невелике регулювання, щоб залишити порожній рядок вгорі.

Подобається це.

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

1

Так, ви можете це змінити. якщо ви викликаєте функцію VBscript в Javascript.

Ось простий приклад

<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 він не працюватиме на FF та GC, оскільки вони не підтримують VBScript.
atsurti

1

Коли ви запускаєте або просто приєднуєтесь до проекту на основі веб-застосувань, дизайн інтерфейсу може бути хорошим. Інакше це слід змінити. Для того, щоб веб-додатки 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
Ви можете зробити demu plz
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/

Сподіваюся, що це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.