国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js中onload與onunload的使用示例

2024-05-06 15:51:06
字體:
來源:轉載
供稿:網友
onload與onunload想必大家并不陌生吧,下面為大家演示下js中onload與onunload的妙用,感興趣的朋友可以參考下,希望對大家有所幫助

引言:
今天周末沒事,就想起前面自己做的一個B2C的電子商務平臺,還有些一些地方沒有完善,就想著完善,嗯,問題是這樣的,在電子商務平臺中有這樣一個場景,我將購物車放置在Session中,使其在整個購物的過程中都能從Session中得到購物車模型,我在購物車某型中有的商品都會在數據庫中減少其購物車中購買的數量,但是如果我關閉窗口,怎樣讓Session中的購物車模型中的商品數量添加到數據庫中,于是我查找了GOOGLE、百度,得到的第一個提示,就是:關閉窗口自動清除Session,于是找到的第一個方法就是在<body>標簽使用onunload屬性,調用某個js如:<body onunload=”close()”>該方法是關閉窗口時觸發close()事件,于是我就可以在close()方法中定義刪除Session的方法……
但是事實不是這樣的,當你刷新這個頁面,以及點擊這個頁面上的鏈接時onunload都會觸發,于是我又在GOOGLE,百度中查找:得到的答案如下:

復制代碼 代碼如下:


<script>
window.onunload = function(){if(self.screenTop>9000)alert('該窗口已經被關閉!')}
</script>

<script>
window.onunload = function(){if(self.screenLeft>9000)alert(該窗口已經被關閉!.')}
</script>


說明:
window.screenTop
獲取瀏覽器客戶區左上角相對于屏幕左上角的 y 坐標
screenTop>后面的數字必須大于你顯示分辯率中的高度
比如,800*600, 這個數得大于600
window.screenLeft
獲取瀏覽器客戶區左上角相對于屏幕左上角的 x 坐標
screenLeft>后面的數字必須大于你顯示分辯率中的寬度
比如,800*600, 這個數得大于800

通常這兩個值設為9000
于是我使用上面的方法,實現了只有在關閉頁面才觸發onunload事件。

總結:
① 當使用onunload屬性時,你可以使用Ajax來清除Session,也可以使用window.location.href來觸發某個請求,比如我在這個用的是struts2我可以用<body onunload=”javascript:window.location.href-‘${pageContext.request.contextPath }/cart/closeWindow.action'” >
然后有closeWindow.action這個請求去處理Session中購物車的商品,讓其數量添加到數據庫中;
② 在此處我也有Ajax來處理請求,但是事實上我們只要處理Session,并不要處理完Session后有任何返回的異步信息,所以我還是使用的觸發一個請求的方法,最終的寫法如下:

復制代碼 代碼如下:


<body
onunload="javascript:if(self.screenTop>9000) window.location.href='${pageContext.request.contextPath }/cart/closeWindow.action';">

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 来安县| 泾川县| 肇庆市| 水城县| 鹤壁市| 巧家县| 苗栗市| 武安市| 杂多县| 鄂温| 峨边| 罗江县| 林芝县| 宣城市| 涿州市| 乌兰察布市| 五河县| 叶城县| 嵊泗县| 遵化市| 庄河市| 资源县| 舒城县| 武汉市| 衡阳县| 丰原市| 田阳县| 大荔县| 静安区| 铁岭市| 昌黎县| 楚雄市| 诏安县| 崇信县| 正阳县| 成都市| 壤塘县| 惠水县| 靖边县| 永兴县| 太谷县|