Merakam Acara Tutup Tetingkap Penyemak Imbas Tanpa Pemintasan Penyerahan Borang
Untuk menangkap peristiwa penutupan tetingkap penyemak imbas secara khusus, mengelakkan konflik dengan penyerahan borang, pemuatan sebelum pemuatan jQuery acara boleh dieksploitasi dengan sedikit pengubahsuaian.
Acara sebelum pemuatan, sebagai ia berdiri, mencetuskan sebarang tindakan yang menyebabkan halaman itu ditinggalkan. Untuk mengehadkannya kepada acara tutup tetingkap sahaja, kami menggunakan pendekatan berikut:
Dalam pengendali acara beforeunload, kami menyemak nilai inFormOrLink.
Kod yang dikemas kini untuk jQuery versi 1.7 dan kemudian:
var inFormOrLink; $('a').on('click', function() { inFormOrLink = true; }); $('form').on('submit', function() { inFormOrLink = true; }); $(window).on("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
Untuk versi lama jQuery (sebelum 1.7):
var inFormOrLink; $('a').live('click', function() { inFormOrLink = true; }); $('form').bind('submit', function() { inFormOrLink = true; }); $(window).bind("beforeunload", function() { return inFormOrLink ? "Do you really want to close?" : null; })
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Penutupan Tetingkap Penyemak Imbas Tanpa Memintas Penyerahan Borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!