Artikel ini menjelaskan bagaimana JS membuka jendela baru untuk mencegahnya diblokir oleh browser. Bagikan untuk referensi Anda. Analisis spesifiknya adalah sebagai berikut:
Membuka jendela baru menggunakan metode tradisional.open () akan diblokir oleh browser. Jadi, bagaimana kita bisa membuat JS membuka jendela baru tanpa diblokir oleh browser? Sebenarnya, masih ada solusi, di sini kita akan menganalisis cara menyelesaikan masalah ini
Saya telah mengalami masalah seperti itu baru -baru ini, jadi saya akan berbagi dengan Anda metode muncul jendela baru. Semua orang dipersilakan untuk menambahkan ...
Yang pertama adalah menggunakan metode JavaScript asli.open () (dalam kebanyakan kasus, itu akan diblokir dengan menjelajah)
Tipe kedua adalah mensimulasikan pengiriman formulir. Prinsipnya adalah untuk menentukan bahwa tindakan formulir adalah alamat URL yang ingin Anda buka, dan target diatur ke "_blank"
Salinan kode adalah sebagai berikut: document.getElementById ("msgtxt"). InnerHtml = "<form id = 'hiddenlink' action = '"+shref+"' target = '_ blank'> <input type = 'hidden' name = 'objek' value = '"+objvalue+"> </form>";
var s = document.geteLementById ("hiddenlink");
s.submit ();
Namun, metode pengiriman formulir tiruan juga dapat diblokir ...
Tipe ketiga, hyperlink simulasi (<a>) diklik
Ketika tombol ditekan, jika Anda ingin membuka tab baru, Anda dapat mensimulasikan tautan yang ditekan dan kemudian buka tautan.
Namun, di jQuery, menggunakan a.click (), a.trigger ('klik') dan sebagainya tidak akan menyebabkan acara default tautan dieksekusi.
Kode berikut mensimulasikan acara klik tautan, dan kemudian menjalankan acara di mana tautan dibuka secara default.
Namun, perlu dicatat bahwa: untuk browser IE, fungsi Dokumen.
Salinan kode adalah sebagai berikut: var a = $ ("<a href = 'http: //www.test.com' target = '_ blank'> test </a>") .get (0);
var e = document.createEvent ('MouseEvents');
E.Initevent ('klik', benar, benar);
a.dispatchevent (e);
Tipe Keempat: Insiden menggelegak menggunakan browser (dicetak ulang)
Salinan kode adalah sebagai berikut: clickopenwin: function (f) {
var datakey = "clickopenwin.datakey"
var me = $ (ini);
var a = me.data (datakey);
var returnData = null;
if (! a) {
A = $ ("");
me.data (datakey, a);
A.click (function (e) {
if (returnData) {
A.attr ("href", returndata);
}kalau tidak {
A. sebelum (saya);
e.stop ();
}
});
}
me.mouseover (function () {$ (this). Before (a) .Appendto (a);});
me.mouseout (function () {a.before ($ (this));});
me.click (function () {
A.attr ("href", "#|");
returnData = f.Apply (ini, argumen);
});
}
1). Pertama, mari kita bicara tentang efek akhir, yaitu menggunakan "A" untuk menahan elemen yang ingin Anda picu jendela pop-up. Acara klik asli akan kembali ke URL pop-up. Sesuai dengan kalimat ini: Salin kode kode sebagai berikut: returnData = f.Apply (ini, argumen);
2). Kemudian kita akan berbicara tentang strategi pemblokiran pop-up. Saya tidak akan berbicara tentang yang spesifik. Bagaimanapun, strategi tidak akan mencegat "A" itu sendiri.
3). Akhirnya, itu disintesis. Setelah menggunakannya untuk memasukkannya, karena acara akan menggelembung, menggunakan klik normal untuk menghasilkan alamat tautan dinamis ke A, memicu acara klik asli A, dan kemudian selesai.
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.