林海學苑

          java學習交流

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            12 隨筆 :: 0 文章 :: 1 評論 :: 0 Trackbacks
          工作中遇到有這樣的情景,要在瀏覽器窗口關閉的時候,提示用戶某種操作。
          類似在關閉窗口時,提示用戶保存當前內容,選擇是則保存并關閉窗口,選擇否則不關閉窗口,也不做保存操作。

          網上找了很多,都是說用js處理window關閉事件的,要么說onbeforeunload 方法,要么說onunload 方法。
          感覺都不能實現。后來突然想到這樣的辦法:用這兩個方法一起來實現!

          原因:
           
          onbeforeunload 事件將會在關閉窗口前執行,你也可以用戶決定是否關閉窗口,這個方法只要有返回值并且不是""或null;他就會出一個提示窗口(對ie,firefox沒有試過)。
           單用這一個方法不能實現上面說的出提示,選擇“是”,然后做保存動作的。

          且不為空返回值會做為提示是否關閉本窗口的內容提示。
          onunload 是在關閉窗口之后執行,不是在關閉窗口之前執行。在這方法里不管做了什么,最后窗口都會關閉。


          現在將這兩個方法合起來,就正好實現了我們的需求,第一個方法出提示,第二個方法實現選擇“是”后的動作:即保存數據。


          這里給出示例代碼,不考慮刷新的問題。

          var isSave =false;
          function save(){
             
          //do something
          }
          window.onbeforeunload 
          = function()  {

            
          if(!isSave){
               
          return "當前數據還沒有保存,關閉或刷新窗口會自動保存數據,是否繼續?";
            }
          else{
               
          return "";
            }
          }
          window.onunload 
          = function()  { 
            
          if(!isSave){
              save();
            }
          }

          posted on 2010-06-22 21:24 林海 閱讀(1153) 評論(0)  編輯  收藏 所屬分類: jsp

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 山东省| 遵化市| 呈贡县| 石狮市| 望都县| 子洲县| 石城县| 德令哈市| 禹城市| 仁寿县| 喀什市| 棋牌| 霍林郭勒市| 桂阳县| 萨嘎县| 侯马市| 芦溪县| 平遥县| 余姚市| 左权县| 墨竹工卡县| 神池县| 克拉玛依市| 平泉县| 和政县| 红安县| 邵东县| 福清市| 延长县| 鲁山县| 冀州市| 崇仁县| 岐山县| 扎鲁特旗| 松潘县| 灵寿县| 肇源县| 宁乡县| 都江堰市| 临西县| 吉林市|