JavaScript 경고 상자 제목을 편집하는 방법은 무엇입니까?


168

C # .NET 페이지에서 다음 코드로 JavaScript 경고를 생성하고 있습니다.

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

제목 제목이 "웹 페이지의 메시지"인 경고 상자를 표시합니다.

제목을 수정할 수 있습니까?


질문은 모든 플랫폼 및 브라우저와 호환되는 JavaScript에 대한 것이지, IE와 Windows에 엄격하게 적용되는 VBScript는 아니기 때문에 사용법은 Windows로 제한됩니다.
UserTursty


2
사용자가 경고를 매우 쉽게 비활성화 할 수 있다는 것을 알고 있습니까? 당신은 그것들에 의존해서는 안됩니다!
toesslab

답변:


259

아냐, 못해

보안 / 피싱 방지 기능입니다.


22
이것이 정답이며 사실 임에도 불구하고 본인이 직접 알림 버전을 만들 수 있으며 원하는대로 할 수 있음을 확인했습니다. 간단한 모달 및 경고 함수 호출을 재정의합니다.
Fallenreaper

1
이것이 어떻게 보안 / 피싱 방지 기능입니까? 나는 논쟁하지 않고 궁금하다.
Tim

1
@Tim 아마도 어떤 웹 사이트에서 사용자가 자신의 URL을 알리지 않았다면 다른 웹 사이트를 시뮬레이션하는 것이 더 쉬울 것입니다. 이 사용자 정의를 허용하지 않으면 JavaScript가 사용자에게 합법적 인 메시지가 아니라고 알려줍니다.
수열

@Hydrothermal 호기심 때문에 경고 동작을 CSS로 시뮬레이션 할 수 없으며, 그렇다면 모달 경고 제목을 변경하는 것이 여전히 위협이 되는가?
Josh

6
@Josh 많은 노력을 기울일 수는 있지만 기본 브라우저 경고에는 나머지 브라우저 정지, 브라우저 UI 위에 떠 다니는 별도의 창으로 작동하는 등 시뮬레이션 할 수없는 동작이 있습니다. 브라우저 화면에서 드래그 할 수 있습니다. 특히 각 브라우저의 경고가 다르게 보이기 때문에 확실한 복제본을 만드는 것은 매우 어렵습니다.
수열

65

아니요, 불가능합니다. 사용자 정의 자바 스크립트 경고 상자를 사용할 수 있습니다.

jQuery를 사용하여 좋은 것을 발견했습니다.

jQuery 경고 대화 상자 (경고, 확인 및 프롬프트 교체)


4
U 감사,하지만 난 사용자 지정 경고 상자 사용에 관심이 아니에요
subash을

20
그런데 제목을 변경할 수없는 이유는 악의적 인 웹 사이트가 사용자에게 속임수를 OS 나 다른 것으로 생각하도록 속이지 않도록하기위한 것입니다.
benzado 2009

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
우리는 모두 같은 바랍니다
라훌

@Chris Fulstow 이 질문에 대한
Tom

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
someElementIdHTML 요소를 설정 한 ID입니다.
James P.

11

헤더 상자 자바 스크립트를 사용자 정의 하기 위해이 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는 원하는 경우 예제보다 훨씬 간단합니다. 방금 <라이브러리에 대한 스크립트 링크를 만들고 내 코드에서 "경고"라는 단어를 바꿨습니다. 감사합니다. 달콤한 추천!
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를 사용하고 있습니다. Firefox에서 VBScript를 실행하는 방법을 Google에 알려야합니다.
kralco626

2
@ Dath-PS firefox에서 VBScript를 실행할 수있는 방법이 있는지 모르겠습니다. 나는 파이어 폭스 에서이 vb 스크립트를 실행하는 방법과 같은 다른 주제를 만들고 위에서 당신에게 준 코드를 게시하고 누군가가 무엇이든 생각 해낼 수 있는지 확인합니다.
kralco626

2
@Darth-Rahul의 솔루션을 사용하지만. JQuery를 사용하면 정말 쉽습니다!
kralco626

3
두 개의 downvotes, 하나의 upvote ...하지만 내가 왜 downvoted되고 있는지에 대한 의견이 없습니다 ... 이것이 유효한 솔루션이라고 생각합니다. 적어도 IE에서는 ... : /
kralco626

4

- 여기에 아주 좋은 '해킹'있다 https://stackoverflow.com/a/14565029 당신은 경고 / 확인 메시지를 생성하는 빈 SRC와 iframe을 사용 -이 (보안을 위하여) 안드로이드에 일을하지 않습니다 - 그러나 귀하의 시나리오에 적합 할 수 있습니다.


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

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
u는 demu PLZ 할 수 있습니다
X-코더

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.