編輯頁面離開提醒:“系統可能不會保存您所做的更改。”


問題 :編輯好的頁面信息,忘記點擊提交按鈕,直接刷新界面導致數據未提交直接清空,仍需再重新填寫問題。

解決方案:onbeforeunload 事件在即將離開當前頁面(刷新或關閉)時觸發

實例:
<body onbeforeunload="return myFunction()">
onbeforeunload=“return true“     無彈框提醒
onbeforeunload=“return false“    彈框提醒 
定義語法:
onbeforeunload 事件在即將離開當前頁面(刷新或關閉)時觸發。
該事件可用於彈出對話框,提示用戶是繼續瀏覽頁面還是離開當前頁面。
對話框默認的提示信息根據不同的瀏覽器有所不同,標准的信息類似
"確定要離開此頁嗎?"。該信息不能刪除。

思路:

  1. 根據以上信息可得出,onbeforeunload 只要返回為 false 就顯示提示信息
  2. 默認onbeforeunload 返回為 true點擊刷新不顯示任何提示
  3. 監聽該頁面輸入事件,當監聽到該頁面無任何數據改動時,刷新當前頁面不做任何提示。 
  4. 監聽到只要有一個文本發生變化,就設置為false。

關鍵 代碼:

    <script>
        //顯示提示框
        var isShow = true;
        function exitPrompt() {
            if (!isShow) {
                return false;
            }
        }
        //改變保存狀態為false換頁面要提示
        function ChangeStateFalse() {
            isShow = false;
        }
        //改變保存狀態為true不提示
        function ChangeStateTrue() {
            isShow = true;
        }

        /**
         * 監聽-所有可能改動的文本內容 包括input ,textarea,ue富文本,只要監聽到有編輯文本的行為,就可視位需要有彈框提示
         * 編輯或添加頁面加載時就要加載該方法
         */
        function eventListenFormChange(){
            $("input").each(function () {
            //數據改變事件,只要數據變動就觸發當前事件,改變isShow為false $(
this).bind('input propertychange',function(e){ ChangeStateFalse() //console.log($(this).val()) //調試時使用-可刪除 }) }) $("textarea").each(function () { $(this).bind('input porpertychange',function(){ ChangeStateFalse() // console.log($(this).val()) }); }) // env.ueditor 為ue地址 可改為你的ue地址 UE.getEditor('content',{}) env.ueditor.addListener("keyup",function(){ ChangeStateFalse() //var arr =(UE.getEditor('content').getContentTxt()); // console.log(arr) }) } </script> <body onbeforeunload="return exitPrompt()" >

 

效果圖:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM