Bagaimana untuk menambah pop timbul selepas muat semula halaman menggunakan javascript onclick
P粉921130067
P粉921130067 2023-09-09 12:48:44
0
2
532

  function sync_data() {
localStorage.setItem("syncDataClicked", true);
location.reload();
}

window.onload = function () {
    if (localStorage.getItem("syncDataClicked") === "true") {
        localStorage.removeItem("syncDataClicked");
        sync_data('show');
    }
};
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<input type="submit" name="submit3" onclick="sync_data()" value="Sync data">
</body>
</html>

Html: 
<input type="submit" name="submit3" onclick="sync_data()" value="Sync data">

JS:
function sync_data() {
    window.onload = function () {
    setTimeout(function () {
        sync_data('show');
    }, 5000);
    }
    }

Js ini tidak berfungsi. Selepas onclick dan muat semula halaman, saya perlu menambah pop timbul melalui fungsi sync_data(). Adakah terdapat sebarang penyelesaian. Saya telah mengemas kini menggunakan storan tempatan tetapi ia menunjukkan mesej pop timbul

P粉921130067
P粉921130067

membalas semua(2)
P粉517475670

Fungsi window.onload anda sudah ada di dalam fungsi sync_data. Jadi window.onload tidak akan dicetuskan kerana halaman sudah dimuatkan apabila butang diklik. Jadi fungsi window.onload anda harus dilaksanakan sebelum fungsi sync_data dilaksanakan. Jadi dalam fungsi sync_data anda harus memasukkan bendera. Berdasarkan bendera ini, fungsi window.onload akan dicetuskan. Anda boleh menggunakan localStorage untuk menyimpan bendera. Inilah kod cadangan saya. Saya tidak pasti sama ada ia berfungsi. Saya menambah amaran pop timbul tersuai pada kod.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sync Data</title>
    <script>
        function sync_data() {           
            localStorage.setItem("syncDataClicked", true);           
            location.reload();
        }

        window.onload = function () {            
            if (localStorage.getItem("syncDataClicked") === "true") {               
                localStorage.removeItem("syncDataClicked");                
                showPopup();
            }
        };

        function showPopup() {           
            alert('Data synced!');
        }
    </script>
</head>
<body>
    <input type="submit" name="submit3" onclick="sync_data()" value="Sync data">
</body>
</html>
P粉990568283

Anda boleh menggunakan kod berikut:

function sync_data(string) {
  localStorage.setItem("syncDataClicked", string);
  location.reload();
}
try{
if (localStorage.getItem("syncDataClicked")){
  let popup = new Blob([localStorage.getItem("syncDataClicked")],{type: "text/html"});
  let link = document.createElement("a");
  let url = window.URL.createObjectURL(popup);
  link.href = url;
  link.target= "_blank";
  link.click();
  localStorage.removeItem("syncDataClicked");
}
}
catch (e) {console.log("It's the first time"); }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
<input type="submit" name="submit3" onclick="sync_data('show')" value="Sync data">
</body>
</html>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!