복붙노트

[JQUERY] raster 윈도우가 실수로 닫힐 때 경고합니다

JQUERY

raster 윈도우가 실수로 닫힐 때 경고합니다

해결법


  1. 1.우리는 사용자가 자신의 데이터를 잃게 될 이러한 행동을 취할 것을 사용자에게 예방하거나 신속해야합니다.

    우리는 사용자가 자신의 데이터를 잃게 될 이러한 행동을 취할 것을 사용자에게 예방하거나 신속해야합니다.

    ID TestButton이있는 ASP.NET 제출 버튼을 사용한 두 개의 텍스트 상자를 사용했습니다. 내가 찍은 다른 포스트 백 제어 하나의 다른 ASP.NET 버튼, AutoPostBack 등록 정보가있는 하나의 확인란이 True, AutoPostBack 속성이있는 하나의 DropDownList가 TRUE입니다. 이제 이러한 모든 포스트 백 컨트롤을 사용하여 사용자가 이러한 컨트롤에 대한 작업을 수행 할 때 데이터가 끊어지는 사용자에게 곶을 표시해야한다는 것을 보여줍니다. 제출 버튼에서는 해당 컨트롤 작업으로 데이터를 제출 해야하는 경우 프롬프트를 표시하지 않습니다. 샘플 코드는 Controls 변경시 윈도우를 설정합니다.

    <html >
    <head id="Head1">
        <title></title>
    
        <script type="text/javascript"
                src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    
        <script type="text/javascript">
            $(function()
            {
                // Prevent accidental navigation away
                $(':input').bind(
                    'change', function() { setConfirmUnload(true); });
                $('.noprompt-required').click(
                    function() { setConfirmUnload(false); });
    
                function setConfirmUnload(on)
                {
                    window.onbeforeunload = on ? unloadMessage : null;
                }
                function unloadMessage()
                {
                    return ('You have entered new data on this page. ' +
                            'If you navigate away from this page without ' +
                            'first saving your data, the changes will be lost.');
                }
    
                window.onerror = UnspecifiedErrorHandler;
                function UnspecifiedErrorHandler()
                {
                    return true;
                }
    
            }); 
    
        </script>
    
    </head>
    <body>
        <form id="form1" name="myForm" runat="server">
        <div>
            First Name :<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
            <br />
            Last Name :<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
            <br />
            IsMarried :<asp:CheckBox ID="CheckBox1" runat="server" /><br />
            <br />
            <asp:Button runat="server" ID="TestButton" Text="Submit" CssClass="noprompt-required" /><br />
            <br />
            <br />
            <br />
            <br />
            <asp:Button runat="server" ID="AnotherPostbackButton" Text="AnotherPostbackButton"
                 /><br />
            <br />
            <asp:CheckBox runat="server" ID="CheckboxWhichCausePostback" Text="CheckboxWhichCausePostback"
                AutoPostBack="true" /><br />
            <br />
            DropdownWhichCausePostback<asp:DropDownList runat="server" ID="DropdownWhichCausePostback"
                AutoPostBack="true">
                <asp:ListItem Text="Text1"></asp:ListItem>
                <asp:ListItem Text="Text2"></asp:ListItem>
            </asp:DropDownList>
            <br />
            <br />
        </div>
        </form>
    </body>
    

    위의 나는 다음을 사용했습니다 :

    $('.noprompt-required').click(function() { setConfirmUnload(false); });
    

    이 줄에서 수행 한 내용은 setConfirmunload 메서드를 호출하고 false를 인수로 호출하고 있으며 윈도우를 설정합니다. 그렇다면 그 의미는 그 사용자가 묻는 메시지가 표시되지 않아야 할 모든 컨트롤에 있으며 해당 클래스를 제어 할 수 없으며 다른 것처럼 다른 것으로 남겨 두십시오.


  2. 2.이것은 정말로 jQuery 일이 아니며,이 기능을 사용합니다.

    이것은 정말로 jQuery 일이 아니며,이 기능을 사용합니다.

    function setConfirmUnload(on) {
        window.onbeforeunload = (on) ? unloadMessage : null;
    }
    
    function unloadMessage() {
        return "Are you sure you want to leave this page";
    }
    

    그런 다음 언제든지 전화 할 수 있습니다

    경고없이 화면을 닫을 수있게하려면 확인 또는 false를 사용하려면 SetConfirmUnload (true)를 사용하여 (인스턴스에 닫기 단추가있는 경우).


  3. 3.언로드 이벤트를 시도 할 수 있습니다.

    언로드 이벤트를 시도 할 수 있습니다.

    $(window).unload( function () { alert("Bye now!"); } );
    

    http://docs.jquery.com/Events/unload

    나는이 정리가 클라이언트에만 있다고 추측하고 있습니다. 이 "정화"의 성격을 아는 것은 흥미로울 것입니다.


  4. 4.Ajax로 이것을 시도 할 수 있습니다

    Ajax로 이것을 시도 할 수 있습니다

    $(window).unload( function () { alert("AJAX function to do required job"); } );
    
  5. from https://stackoverflow.com/questions/1244535/alert-when-browser-window-closed-accidentally by cc-by-sa and MIT license