Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk membuka tetingkap baharu dengan JS untuk mengelakkannya daripada disekat oleh kemahiran browser_javascript

Bagaimana untuk membuka tetingkap baharu dengan JS untuk mengelakkannya daripada disekat oleh kemahiran browser_javascript

WBOY
WBOYasal
2016-05-16 16:22:281536semak imbas

Contoh dalam artikel ini menerangkan cara menggunakan JS untuk membuka tetingkap baharu untuk mengelakkannya daripada disekat oleh penyemak imbas. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Membuka tetingkap baharu menggunakan kaedah window.open() tradisional akan disekat oleh penyemak imbas Jadi, bagaimanakah kita boleh membuat JS membuka tetingkap baharu tanpa disekat oleh penyemak imbas? Sebenarnya masih ada cara Di sini kami akan menganalisis bagaimana untuk menyelesaikan masalah ini

Saya juga mengalami masalah seperti itu baru-baru ini, jadi saya akan berkongsi dengan anda cara untuk muncul tetingkap baharu. Semua orang dialu-alukan untuk menambah...

Kaedah pertama ialah menggunakan kaedah window.open() javascript asli (yang akan disekat secara automatik dengan menyemak imbas dalam kebanyakan kes)

Kaedah kedua adalah untuk mensimulasikan penyerahan borang Prinsipnya adalah untuk menentukan tindakan borang sebagai alamat URL yang anda mahu buka dan sasaran ditetapkan kepada "_blank"

Salin kod Kod adalah seperti berikut:
document.getElementById("msgTxt").innerHTML="";
var s=document.getElementById("hiddenlink");
s.submit();

Walau bagaimanapun, kaedah simulasi penyerahan borang juga mungkin disekat...

Jenis ketiga, hiperpautan simulasi () sedang diklik

Apabila anda menekan butang dan ingin membuka tab baharu, anda boleh mensimulasikan pautan yang ditekan dan kemudian membuka pautan itu.
Tetapi dalam jQuery, menggunakan a.click(), a.trigger('click'), dsb. tidak akan menyebabkan acara lalai pautan dilaksanakan.
Kod berikut mensimulasikan penjanaan acara klik pautan, dan kemudian laksanakan acara yang membuka pautan secara lalai.

Walau bagaimanapun, satu perkara yang perlu diberi perhatian ialah: untuk pelayar IE, hanya IE9 atau lebih tinggi menyokong fungsi document.createEvent, jadi jika kod berikut dilaksanakan dalam IE, IE9 atau lebih tinggi diperlukan

Salin kod Kod adalah seperti berikut:
var a = $("test").get(0);
var e = document.createEvent('MouseEvents');
e.initEvent('klik', benar, benar);
a.dispatchEvent(e);


Kaedah keempat ialah menggunakan acara menggelegak penyemak imbas (dicetak semula)

Salin kod Kod adalah seperti berikut:
clickOpenWin: function(f){
var dataKey = "clickOpenWin.dataKey"
var saya = $(ini);
var A = me.data(dataKey);
var returnData = null;
Jika(!A){
A = $("");
         me.data(Key data, A);
A.klik(fungsi(e){
                jika(returnData){
A.attr("href", returnData);
                } lain {
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(this, arguments);
});
}

1). Mula-mula, mari kita bincangkan tentang kesan akhir, iaitu menggunakan "A" untuk mengandungi elemen yang anda mahu mencetuskan tetingkap timbul Peristiwa klik asal harus mengembalikan URL tetingkap timbul , yang sepadan dengan ayat ini:

Salin kod Kod adalah seperti berikut:
returnData = f.apply(this, hujah);

2). Kemudian mari kita bincangkan tentang strategi pemintasan pop timbul. Bagaimanapun, strategi itu tidak akan memintas "A" itu sendiri
3). Akhirnya, ia disintesis Selepas ia disertakan dengan A, kerana acara itu akan muncul, klik biasa digunakan untuk menjana alamat pautan dinamik untuk A, mencetuskan peristiwa klik asal A, dan ia selesai.

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn