Heim >Web-Frontend >js-Tutorial >Umgang mit Abfangen beim Aufruf von window.open in einer Ajax-Anfrage

Umgang mit Abfangen beim Aufruf von window.open in einer Ajax-Anfrage

php中世界最好的语言
php中世界最好的语言Original
2018-05-24 14:59:091840Durchsuche

Dieses Mal erkläre ich Ihnen, wie Sie mit dem Abfangen des Aufrufs von window.open in einer Ajax-Anfrage umgehen. Was sind die Vorsichtsmaßnahmen beim Umgang mit dem Abfangen des Aufrufs von window.open? in einer Ajax-Anfrage? Das Folgende ist ein praktischer Fall, schauen wir uns ihn an.

Beschreibung der Vorteile dieser Methode: Wenn beispielsweise die Ajax-Rückruffunktion fehlschlägt, wird der vom Browser standardmäßig geöffnete leere Link automatisch geschlossen, was eine bessere Benutzererfahrung bietet.

 var newwin;
    $("#btn").click(function(){
        newwim = window.open();
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                       newwin.location.href = xxx;//xxx为后端返回的地址;            
                }else{
                    alert(data.TSR_MSG);
                    newwin.close();//此处为ajax失败方法,自动关闭刚才会打开的页面;
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });
    });
  • Analyse der zweiten Lösung:

Diese Methode wurde getestet: Beispielsweise gibt der Hintergrund eine zurück Off-Site Für URLs fangen Google Chrome, 360 Browser usw. Anfragen ab, Firefox- und QQ-Browser jedoch nicht. Es wird vorhergesagt, dass der Browser selbst Off-Site-URLs dieses Typs abfängt und normale URLs nicht abgefangen werden.

 $("#btn").click(function(){
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            async:false,//改为同步请求
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                     window.open(xxx);               
                }else{
                    alert(data.TSR_MSG);                    
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie auf der chinesischen PHP-Websiteandere verwandte Artikel!

Empfohlene Lektüre:

JSON- und Mathe-Anwendungsfallanalyse in JS

Detaillierte Erläuterung der Implementierungsschritte von PromiseA+


Das obige ist der detaillierte Inhalt vonUmgang mit Abfangen beim Aufruf von window.open in einer Ajax-Anfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn