복붙노트

[RUBY-ON-RAILS] 왜 "방지 추가 대화 상자 만들기에서이 페이지의"경고 상자에 나타납니다?

RUBY-ON-RAILS

왜 "방지 추가 대화 상자 만들기에서이 페이지의"경고 상자에 나타납니다?

내 레일 3 응용 프로그램에서 내가 할 :

render :js => "alert(\"Error!\\nEmpty message sent.\");" if ...

때때로,이 오류 메시지가 아래 (같은 경고 상자에) 난을 참조 : "예방이 페이지를 추가 대화 상자를 만들 수"와 체크 박스.

이것은 무엇을 의미 하는가 ?

즉,이 추가 텍스트 및 확인란을 표시하지 않도록 할 수 있습니까?

나는 파이어 폭스 4 사용합니다.

해결법

  1. ==============================

    1.그것은 또 다시 짜증나는 경고 상자를 표시 정지 사이트에 대한 브라우저 기능입니다.

    그것은 또 다시 짜증나는 경고 상자를 표시 정지 사이트에 대한 브라우저 기능입니다.

    웹 개발자로서, 당신은 그것을 해제 할 수 없습니다.

  2. ==============================

    2.이 무한 루프에 모달 (경고 / 확인) 메시지를 보여줌으로써 브라우저 (현재 페이지)를 동결에서 페이지를 방지하기 위해 브라우저의 끝에 보안 조치입니다. 참조 예를 들어, 파이어 폭스는 여기를.

    이 무한 루프에 모달 (경고 / 확인) 메시지를 보여줌으로써 브라우저 (현재 페이지)를 동결에서 페이지를 방지하기 위해 브라우저의 끝에 보안 조치입니다. 참조 예를 들어, 파이어 폭스는 여기를.

    이 작업을 해제 할 수 없습니다. 주위 유일한 방법은 JQuery와 UI의 대화 상자와 같은 사용자 정의 대화 상자를 사용하는 것입니다.

  3. ==============================

    3.당신은 기본적으로 경고 기능을 무시하는 코드 아래, 자바 스크립트를 사용하여 사용자 지정 경고 상자를 만들 수 있습니다

    당신은 기본적으로 경고 기능을 무시하는 코드 아래, 자바 스크립트를 사용하여 사용자 지정 경고 상자를 만들 수 있습니다

    window.alert = function(message) { $(document.createElement('div'))
        .attr({
          title: 'Alert',
          'class': 'alert'
        })
        .html(message)
        .dialog({
          buttons: {
            OK: function() {
              $(this).dialog('close');
            }
          },
          close: function() {
            $(this).remove();
          },
          modal: true,
          resizable: false,
          width: 'auto'
        });
    };
    
  4. ==============================

    4.JQuery와 UI의 대화 상자를 사용하면 항상 해결책이 아니다. 내가 아는 한 경고 및 확인은 특정 지점에서 스크립트의 실행을 막을 수있는 유일한 방법입니다. 해결 방법으로 우리는 응용 프로그램의 요구가 경고와 확인을 호출하는 사용자 노하우를 할 수있는 메커니즘을 제공 할 수 있습니다. 이것은 (showError는 jQuery를 대화 상자 또는 사용자와 통신 할 다른 방법을 사용) 예를 들어 다음과 같이 수행 할 수 있습니다 :

    JQuery와 UI의 대화 상자를 사용하면 항상 해결책이 아니다. 내가 아는 한 경고 및 확인은 특정 지점에서 스크립트의 실행을 막을 수있는 유일한 방법입니다. 해결 방법으로 우리는 응용 프로그램의 요구가 경고와 확인을 호출하는 사용자 노하우를 할 수있는 메커니즘을 제공 할 수 있습니다. 이것은 (showError는 jQuery를 대화 상자 또는 사용자와 통신 할 다른 방법을 사용) 예를 들어 다음과 같이 수행 할 수 있습니다 :

    var f_confirm;
    function setConfirm() {
      f_confirm = confirm;
      confirm = function(s) {
        try {
          return f_confirm(s);
        } catch(e) {
          showError("Please do not check 'Prevent this page from creating additional dialogs'");
        }
        return false;
      };
    };
    
  5. ==============================

    5.나는 희망 내 웹 응용 프로그램에서 체크 박스를 우회하기 위해이 기능을 설계했습니다.

    나는 희망 내 웹 응용 프로그램에서 체크 박스를 우회하기 위해이 기능을 설계했습니다.

    그것은 블록 페이지의 모든 기능 (사용자가 마지막으로 대화를 폐쇄하기 때문에 적은 3 초 이상이 경과 한 가정) 실행하는 동안,하지만 난 뭔가 다른 가능성에 대한 코드를 가지고 있지 않기 때문에 재귀 또는에서는 setTimeout 함수에 선호 대화 상자가 나타날 때까지 기다리는 동안 클릭하거나 트리거된다.

    이미 Modalbox 내에 포함 된 보고서에 오류 / 메시지 / 확인한다을 표시 할 때 나는 그것을 가장 필요로합니다. 나는 추가 대화 상자를 위해 사업부를 추가 할 수 있지만, 내장 대화 상자를 사용할 수 있다면 그게 너무 지저분하고 불필요한 보인다.

    이 아마 dom.successive_dialog_time_limit 3보다 값 이상으로 변경되면 휴식 않으며, 크롬은 파이어 폭스와 같은 기본이 있는지 어떻게 알 수 있습니까 것이라고합니다. 그러나 적어도 그것은 옵션들 중 하나입니다.

    누군가가 그것을 바탕으로 개선 할 수있는 경우 또한, 제발!

    // note that these should not be in the global namespace
    var dlgRslt,
        lastTimeDialogClosed = 0;
    
    function dialog(msg) {
        var defaultValue,
            lenIsThree,
            type;
    
        while (lastTimeDialogClosed && new Date() - lastTimeDialogClosed < 3001) {
            // timer
        }
    
        lenIsThree = 3 === arguments.length;
        type = lenIsThree ? arguments[2] : (arguments[1] || alert);
        defaultValue = lenIsThree && type === prompt ? arguments[1] : '';
    
        // store result of confirm() or prompt()
        dlgRslt = type(msg, defaultValue);
        lastTimeDialogClosed = new Date();
    } 
    

    용법:

    dialog('This is an alert.');
    
    dialog( 'This is a prompt', prompt );
    dialog('You entered ' + dlgRslt);
    
    dialog( 'Is this a prompt?', 'maybe', prompt );
    dialog('You entered ' + dlgRslt);
    
    dialog( 'OK/Cancel?', confirm );
    if (dlgRslt) {
        // code if true
    }
    
  6. ==============================

    6.이 브라우저 기능입니다.

    이 브라우저 기능입니다.

    당신이 http://bootboxjs.com/을 사용하려고 할 수 있다면, 오순절이 라이브러리는 동일한 작업을 수행 할 수 있습니다

    alert("Empty message sent");
    

    서면에 의하여 :

    bootbox.alert("Empty message sent", function(result) {
        // do something whit result
     });
    

    당신은 너무 좋은 사용자 인터페이스를 얻을 수 있습니다!

  7. from https://stackoverflow.com/questions/5848381/why-prevent-this-page-from-creating-additional-dialogs-appears-in-the-alert-bo by cc-by-sa and MIT license