php - window.open()弹出窗口被拦截.
PHPz
PHPz 2017-05-16 13:12:48
0
8
697

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

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

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

PHPz
PHPz

学习是最好的投资!

répondre à tous(8)
巴扎黑

Pour cette question, il faut d'abord comprendre pourquoi elle est interceptée. Le navigateur fera des appels "non artificiels"window.open的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截
从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过window.open打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了
解决方法可以先在操作(比如点击)的时候,直接window.open, puis ira en ajax pour obtenir les données, puis attribuera une URL à la fenêtre ouverte Le pseudo code approximatif. est le suivant :

el.addEventListener('click',function(){
    var winHandler = window.open("","_blank");
   ajax(function(url){
        winHandler.location.href = url;
   });
    
})
过去多啦不再A梦
<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>

Il n’y a rien de mal à cela.

仅有的幸福

Pourquoi ajouter _blank ?

window.open('www.baidu.com')
小葫芦

Si l'url a un en-tête http ou https

漂亮男人

Écrivez l'événement qui déclenche la méthode sous forme de balise a et écrivez la logique pour obtenir l'URL dans le contrôleur pointé par la balise a, puis vous pourrez revenir à une nouvelle page, en contournant la méthode window.open en bref

过去多啦不再A梦

Pour des raisons de sécurité, le navigateur bloquera automatiquement les pop-ups

我想大声告诉你

Seules les commandes qui ouvrent une nouvelle fenêtre peu de temps après que l'utilisateur a cliqué dessus, comme window.open, ne seront pas interceptées. Il s'agit d'une restriction de sécurité du navigateur.

给我你的怀抱

Essayez d'ajouter un paramètre supplémentaire à la requête ajax :async: false

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!