十年專注于品牌網(wǎng)站建設 十余年專注于網(wǎng)站建設_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
      南昌百恒網(wǎng)絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網(wǎng)絡微信公眾號
      掃一掃打開百恒網(wǎng)絡微信小程序

      百恒網(wǎng)絡

      南昌百恒網(wǎng)絡

      javascript中beforeunload事件及DOMContentLoaded事件應方法及實例

      百恒網(wǎng)絡 2016-12-30 6750

      在做H5開過程中,交互響應事件是經(jīng)常要用到的,前面我們通過《contextmenu事件在H5中應方法及實例》介紹了contextmenu事件在H5中的應用,接下由南昌APP開發(fā)公司百恒網(wǎng)絡技術人員向大家介紹beforeunload 事件和DOMContentLoaded事件。

      1.beforeunload 事件

      之所以有發(fā)生在 window 對象上的 beforeunload 事件,是為了讓開發(fā)人員有可能在頁面卸載前 阻止這一操作。這個事件會在瀏覽器卸載頁面之前觸發(fā),可以通過它來取消卸載并繼續(xù)使用原有頁面。 但是,不能徹底取消這個事件,因為那就相當于讓用戶無法離開當前頁面了。為此,這個事件的意圖是 將控制權交給用戶。顯示的消息會告知用戶頁面行將被卸載(正因為如此才會顯示這個消息),詢問用 戶是否真的要關閉頁面,還是希望繼續(xù)留下來如圖所示。 為了顯示這個彈出對話框,必須將 event.returnValue 的值設置為要顯示給用戶的字符串(對 IE及 Fiefox而言),同時作為函數(shù)的值返回(對 Safari和 Chrome而言),如下面的例子所示。

      EventUtil.addHandler(window, "beforeunload", function(event){

      event = EventUtil.getEvent(event);

      var message = "I'm really going to miss you if you go.";

      event.returnValue = message;

      return message;

      });

      IE和 Firefox、Safari和 Chrome都支持 beforeunload 事件,也都會彈出這個對話框詢問用戶是否 真想離開。Opera 11及之前的版本不支持 beforeunload 事件。

      DOMContentLoaded 事件 如前所述,window 的 load 事件會在頁面中的一切都加載完畢時觸發(fā),但這個過程可能會因為要 加載的外部資源過多而頗費周折。而 DOMContentLoaded 事件則在形成完整的 DOM樹之后就會觸發(fā), 不理會圖像、JavaScript 文件、CSS 文件或其他資源是否已經(jīng)下載完畢。與 load 事件不同, DOMContentLoaded 支持在頁面下載的早期添加事件處理程序,這也就意味著用戶能夠盡早地與頁面 進行交互。 要處理 DOMContentLoaded 事件,可以為 document 或 window 添加相應的事件處理程序(盡管 這個事件會冒泡到 window,但它的目標實際上是 document)。來看下面的例子。

      EventUtil.addHandler(window, "DOMContentLoaded", function(event){

      alert("Content loaded.");

      });


      2.DOMContentLoaded 事件

      對象不會提供任何額外的信息(其 target 屬性是 document)。 IE9+、Firefox、Chrome、Safari 3.1+和 Opera 9+都支持 DOMContentLoaded 事件,通常這個事件 既可以添加事件處理程序,也可以執(zhí)行其他 DOM操作。這個事件始終都會在 load 事件之前觸發(fā)。 對于不支持 DOMContentLoaded 的瀏覽器,我們建議在頁面加載期間設置一個時間為 0毫秒的超 時調(diào)用,如下面的例子所示。

      setTimeout(function(){

      //在此添加事件處理程序

      }, 0);

      這段代碼的實際意思就是:“在當前 JavaScript 處理完成后立即運行這個函數(shù)。”在頁面下載和構建 期間,只有一個 JavaScript 處理過程,因此超時調(diào)用會在該過程結(jié)束時立即觸發(fā)。至于這個時間與 DOMContentLoaded 被觸發(fā)的時間能否同步,主要還是取決于用戶使用的瀏覽器和頁面中的其他代碼。 為了確保這個方法有效,必須將其作為頁面中的第一個超時調(diào)用;即便如此,也還是無法保證在所有環(huán) 境中該超時調(diào)用一定會早于 load 事件被觸發(fā)。

      本文僅限內(nèi)部技術人員學習交流,不得作于其他商業(yè)用途.希望此文對廣大技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設公司-百恒網(wǎng)絡http://www.dgscpc.com/如轉(zhuǎn)載請注明出處!


      400-680-9298,0791-88117053
      掃一掃關注百恒網(wǎng)絡微信公眾號
      掃一掃打開百恒網(wǎng)絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      国产午夜精品一区二区三区不卡| 国产精品色拉拉免费看| 亚洲av无码成人精品区在线播放 | 国产成人精品999在线观看| 日韩精品内射视频免费观看| 精品毛片乱码1区2区3区| 四虎国产精品永久免费网址| 亚洲国产成人a精品不卡在线| 成年男女男精品免费视频网站| 99re在线精品视频免费| 国产成人精品高清在线观看93| 国产精品99久久久久久董美香| 国产乱码精品一区三上| 在线观看免费精品国产| 国产91精品在线| 真实国产乱子伦精品免费| 亚洲无删减国产精品一区| 久久精品亚洲综合一品| 久久精品国产清白在天天线 | 亚洲精品高清国产麻豆专区 | 久久这里的只有是精品23| 国产91大片精品一区在线观看| 久久国产精品61947| 国产精品.XX视频.XXTV| 国产成人精品cao在线| 大伊香蕉精品视频在线导航| 日韩av激情在线观看| 国产成人精品一区二三区| 国产真实伦偷精品| 国产91精品久久久久久久| 亚洲精品久久无码av片俺去也| 香蕉久久夜色精品升级完成| 久久九九AV免费精品| 久久亚洲精品国产精品| 久久国产精品成人影院| 久久精品国产99国产精品澳门| 精品久久人人做人人爽综合 | 日韩精品视频一区二区三区| 日韩精品无码人妻免费视频| 国产精品亚洲精品久久精品| 国产亚洲精品AAAA片APP|