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
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.
Anda boleh menggunakan kod berikut: