Rumah  >  Soal Jawab  >  teks badan

php - window.open()弹出窗口被拦截.

从后端传一个url, 前端收到后打开新窗口跳到这个链接.
使用 window.open(url, '_blank'); 被浏览器拦截.

请问有什么办法实现吗 ? 试了下模拟a标签点击照样拦截, 弹出p加载iframe不行, 必须要打开窗口.

问题已解决, 见采纳答案.

PHPzPHPz2734 hari yang lalu698

membalas semua(8)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-16 13:14:48

    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:

    el.addEventListener('click',function(){
        var winHandler = window.open("","_blank");
       ajax(function(url){
            winHandler.location.href = url;
       });
        
    })

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:14:48

    <a href="http://www.baidu.com" target="_blank" id="xx">hahah</a>
        <button type="button" id='btn'>clickme</button>
        <script>
            document.getElementById('btn').onclick = function() {
                document.getElementById('xx').click();
            }
        </script>

    Tiada apa yang salah dengannya.

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:14:48

    Kenapa tambah _blank?

    window.open('www.baidu.com')

    balas
    0
  • 高洛峰

    高洛峰2017-05-16 13:14:48

    Jika url mempunyai pengepala http atau https

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:14:48

    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

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:14:48

    Atas sebab keselamatan, penyemak imbas akan menyekat pop timbul secara automatik

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:14:48

    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.

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:14:48

    Cuba tambah satu lagi parameter pada permintaan ajax:async: false

    balas
    0
  • Batalbalas