ホームページ > ウェブフロントエンド > jsチュートリアル > js_javascript スキルでの onload と onunload の使用例

js_javascript スキルでの onload と onunload の使用例

WBOY
リリース: 2016-05-16 17:24:24
オリジナル
1188 人が閲覧しました
はじめに:
今週末は何もすることがないので、以前構築したB2C eコマースプラットフォームを思い出しました。 まだ完璧ではない部分があるので、それを改善することを考えました。問題は、電子商取引では、ショッピング プロセス全体でセッションからショッピング カート モデルを取得できるように、ショッピング カートをセッションに配置するシナリオがあります。特定の種類のショッピング カートでは、ショッピング カート内の購入数量が減りますが、ウィンドウを閉じた場合、セッション内のショッピング カート モデルの商品の数量をデータベースに追加するにはどうすればよいですか? GOOGLE と Baidu を使用した場合、最初に表示されたプロンプトは次のとおりでした。ウィンドウを自動的に閉じるセッションをクリアするため、最初に見つけた方法は、 タグの onunload 属性を使用して、次のような特定の JS を呼び出すことでした。 onunload="close()"> このメソッドは、ウィンドウが閉じられたときに close() イベントをトリガーするため、close() メソッドでセッションを削除するメソッドを定義できます。
しかし、これはそうではありません。このページを更新してこのページのリンクをクリックすると Onunload がトリガーされるため、もう一度 GOOGLE にアクセスして Baidu で検索すると、次のような答えが得られます:
コードをコピー コードは次のとおりです。

< script>
window.onunload = function(){if(self.screenTop> 9000)alert('このウィンドウは閉じられています!')}

< script>
window.onunload = function(){if(self.screenLeft> 9000)alert(ウィンドウが閉じられました!.')}


説明:
window.screenTop
左上の y 座標を取得します画面の左上隅を基準としたブラウザ クライアント領域の隅
screenTop> 次の数値はディスプレイ解像度の高さより大きくなければなりません
たとえば、800*600、この数値は 600 より大きい必要があります。
window.screenLeft
画面の左上隅を基準としたブラウザ クライアント領域の左上隅の x 座標を取得します。
screenLeft> 次の数値は、ディスプレイ解像度の幅より大きい必要があります。
たとえば、800*600、この数値は 800 より大きい必要があります

通常、これら 2 つの値は 9000 に設定されます
そこで、上記の方法を使用して、onunload イベントがページが閉じられたときにトリガーされます。


概要: ① onunload 属性を使用する場合、Ajax を使用してセッションをクリアしたり、window.location.href を使用してリクエストをトリガーしたりできます。私はここでやっています struts2 を使用すると、 を使用できます。 closeWindow.action のリクエスト セッションでショッピング カート内のアイテムを処理し、その数量をデータベースに追加します。
② ここでもリクエストを処理するために Ajax を使用していますが、実際にはセッションを処理するだけで済みます。セッション情報の後に非同期リターンを処理する必要があるため、最終的な書き込みメソッドは次のとおりです。


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

関連ラベル:
js
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート