Saya hanya ingin membuat hal kecil yang menggabungkan winform dengan html5. Tiba-tiba saya tertarik dan ingin menyematkan versi web WeChat di dalamnya.
Oke, begitu idenya muncul, ambil tindakan. Efek akhirnya adalah sebagai berikut:
Dari awal, saya berencana untuk menyematkan iframe di halaman dan menunjuk ke https://wx.qq.com, tidak apa-apa, tapi saya masih terlalu naif, dan versi web WeChat akan otomatis melompat. Hasilnya seperti gambar di bawah ini:
Jadi saya mencari cara online untuk mencegah lompatan iframe, yaitu dengan menambahkan dua atribut security=restrictedsandbox= ke tag iframe. Yang pertama adalah fungsi IE yang melarang js, dan yang terakhir adalah fungsi HTML5.
Gunakan sandbox=allow-scripts allow-same-origin allow-popups
untuk mencegah lompatan. Namun... hasilnya adalah ini:
Kemudian saya menemukan bahwa lompatan ini sebenarnya menelusuri halaman lompatan setelah menutup halaman aslinya. Jadi Anda bisa menggunakan acara penutupan halaman sebelum membongkar untuk mencegah lompatan. Jadi tambahkan kode berikut ke halaman:
document.body.onbeforeunload = fungsi (acara) { var rel = asdfawfewf; if (!window.event) { event.returnValue = rel; } else { window.event.returnValue = rel;
Kemudian saya menemukan hasilnya masih seperti ini:
Apa alasannya? Tidak ada tanggapan atas kejadian tersebut? Atau apakah lompatan dalam versi web WeChat terlalu mengagumkan? Abaikan saja kejadian ini? Jadi saya membuat html kosong baru dan menambahkan acara secara terpisah untuk verifikasi.
<!DOCTYPE html> <html lang=en xmlns=http://www.w3.org/1999/xhtml> <head> <meta charset=utf-8 /> <title></title> </head> < body></body> <skrip>document.body.onbeforeunload = fungsi (acara) { var rel = asdfawfewf; jika (!window.event) { event.returnValue = rel; } else { window.event.returnValue = rel; } };
Hasilnya layak:
Namun setelah menyematkan iframe di halaman, langsung melompat. Anda dapat mencoba kode berikut.
<!DOCTYPE html> <html lang=en xmlns=http://www.w3.org/1999/xhtml> <head> <meta charset=utf-8 /> <title></title> </head> < badan> <iframe src=https://wx.qq.com/ frameborder=0 style=position: absolute;border: navajowhite;kiri: 0;tinggi: kalk(100% - 30px);lebar:100%> </iframe> </body> <skrip> document.body.onbeforeunload = fungsi (acara) { var rel = asdfawfewf; if (!window.event) { event.returnValue = rel; else { window.event.returnValue = rel; } };
Ketika saya kehabisan ide, saya terus menyalakan dan mematikannya untuk melihat apakah metode ini berhasil. Tiba-tiba saya menemukan bahwa jika halaman ditutup dalam waktu singkat setelah dibuka, event onbeforeunload tidak akan terpicu. Setelah menunggu beberapa detik dan kemudian menutup halaman, event tersebut akan terpicu dan sebuah prompt akan muncul .
Ayo, coba penugasan iframe tertunda ke src (JQuery dikutip di sini).
<!DOCTYPE html> <html lang=en xmlns=http://www.w3.org/1999/xhtml> <head> <meta charset=utf-8 /> <title></title> <skrip src=skrip /jquery-2.2.3.js></script> </head> <body> <iframe id=iframe frameborder=0 style=position: absolute;border: navajowhite;kiri: 0;tinggi: calc(100% - 30px);lebar:100%> </iframe> </body> <script> $(function () { setTimeout(function () { iframe.src = https: //wx.qq.com/; },5000); document.body.onbeforeunload = fungsi (acara) { var rel = asdfawfewf; if (!window.event) { event.returnValue = rel; } else { window.event.returnValue = rel;
Hasilnya memang berhasil. Akan muncul prompt apakah akan meninggalkan halaman ini. Tidak ada lompatan menuju kesuksesan. Gambar di bawah adalah gambar produk jadi saya.
Anda sudah selesai. Anda dapat mengobrol dan mentransfer file secara normal, tetapi Anda tidak dapat mengambil tangkapan layar.
Kerugiannya adalah Anda perlu mengklik tombol pop-up batal untuk menyelesaikan login, dan itu perlu dilakukan dua kali untuk membuka halaman, dan kedua kalinya setelah memindai kode QR, halaman akan melompat lagi . Saat ini tidak ada cara untuk mengatasi masalah ini. Saya harap teman-teman yang memiliki cara untuk mengatasi masalah ini dapat memberi saya beberapa saran~~ Editor akan membalas Anda tepat waktu. Saya juga ingin mengucapkan terima kasih atas dukungan Anda Situs web VeVb Wulin!