2016-06-10 15 views
0

Andere Versuche, window.open('url', '_blank') in diesem Skript zu verwenden, funktionieren wie gewünscht. Dieser Befehl, der keine neue Registerkarte öffnet, verwendet eine andere Logik nach einer Eingabeaufforderung confirm(). Die Logik besteht darin, einen Teil der Seite anzuzeigen, wenn 'Reserviert' darin gefunden wird oder andernfalls auf die Zielseite umgeleitet wird.Verfolgen Sie, warum window.open nicht funktioniert

Die Weiterleitung erfolgt automatisch aufgrund des Erfolgsmanagers $.ajax. Keine Methode der Umleitung nimmt Änderungen vor.

Form für die 2. Methode:

<form method=\"get\" id=\"formgoregistry\" name=\"goregistry\" action=\"\" target=\"_blank\"> 
</form> 

Javascript-Funktion in Frage:

function getRegistryInfo(num) { 
    // for 2nd method, set the form's action 
    $('#formgoregistry').attr('action', 'http://somesite.com/somefile?n=somevalue'); 

    var response = $.ajax({ 
     type: 'POST', 
     url: 'purchases_registry.php', 
     dataType: 'html', 
     data: { number: num }, 
     success: function(data) { 
      console.log('response = '+data); 
      if (data.indexOf('Reserved') > 0) { 
       // work with the result 
       // Code in here works fine 
       .... 
      } 
      else { 
       // wrong data, redirect to outside page 
       // ** Neither of these method open a new tab 
       // 1st method 
       var url = 'http://somesite.com/somefile?n=somevalue'; 
       console.log('url = '+url);    // prints the correct url 
       var w = window.open(url, '_blank');  // NO new tab or error 
       console.log('window = '+w);    // window = undefined 

       // 2nd method (setting form's action beforehand) 
       console.log(document.goregistry.action); // prints the correct url 
       document.goregistry.submit();    // NO new tab or error 
      } 
     } 
    }); 
} 

Ich frage mich, ob das Fenster einen Teil des Problems nicht definiert ist und warum.

Antwort

0

Verwenden Sie dieses Skript, um den Link in einem neuen Fenster zu öffnen:

echo "<form action=\"your_link.php?id=\" method=\"post\" target=\"myWindow\", onsubmit=\"window.open('', this.target, 'width=300,height=400,resizable=no,scrollbars=no');return true;\"> 

oder in HTML-Sprache:

<form action="your_link.php?idk=$id=" method="post" target="myWindow", onsubmit="window.open('', this.target, 'width=300,height=400,resizable=no,scrollbars=no');return true;"> 

Wenn Sie eine href-Methode ändern, nur einfach onsubmit zu Onclick, das ist alles, was ich weiß, hoffe es hilft, viel Glück!

+0

Die reichen müssen in Javascript sein. 'window.open ('url');' oder 'document.goregistry.submit();' – David

Verwandte Themen