Lepaskan url dari bahagian belakang dan selepas menerimanya, bahagian hadapan akan membuka tetingkap baharu dan melompat ke pautan ini.
Gunakan window.open(url, '_blank');
untuk dipintas oleh pelayar.< /p>
Adakah terdapat apa-apa cara untuk mencapai ini? Saya cuba mensimulasikan klik pada teg dan ia masih memintasnya Tetingkap timbul gagal memuatkan iframe dan tetingkap mesti dibuka.
Masalah telah diselesaikan, lihat jawapan yang diterima.
Untuk soalan ini, kita mesti memahami terlebih dahulu mengapa ia dipintas Penyemak imbas akan membuat panggilan "bukan buatan"
window.open
的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open
之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过
window.open
打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了解决方法可以先在操作(比如点击)的时候,直接
window.open
, dan kemudian pergi ke ajax untuk mendapatkan data, dan kemudian menetapkan URL pada tetingkap pseudo anggaran adalah seperti berikut:Tiada apa yang salah dengannya.
Kenapa tambah _blank?
Jika url mempunyai pengepala http atau https
Tulis peristiwa yang mencetuskan kaedah sebagai teg, tulis logik untuk mendapatkan URL dalam Pengawal yang ditunjuk oleh teg, dan kemudian kembali ke halaman baharu, memintas kaedah tetingkap.buka secara ringkas
Atas sebab keselamatan, penyemak imbas akan menyekat pop timbul secara automatik
Hanya arahan yang membuka tetingkap baharu dalam tempoh yang singkat selepas pengguna mengkliknya, seperti
window.open
, tidak akan dipintas Ini adalah sekatan keselamatan penyemak imbas.Cuba tambah satu lagi parameter pada permintaan ajax:
async: false