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.
Die reichen müssen in Javascript sein. 'window.open ('url');' oder 'document.goregistry.submit();' – David