window.open gibt null zurück und schlägt im Inline-Skript fehl, funktioniert aber von der Konsole aus

8

Ich benutze Smarty Vorlagensystem. Eine seiner Funktionen ist die Möglichkeit, ein Skript auszugeben, das Debug-Informationen für jede Seite generiert. Hier sehen Sie ein Beispiel für generierten Code:

%Vor%

Das Problem ist, dass die Funktionen window.open immer null zurückgeben. Ich habe versucht, es mit setTimeout zu verzögern, aber nichts hat sich geändert. Wenn ich den Code kopieren und in der Firebug-Konsole ausführen, funktioniert er ordnungsgemäß. Es gibt keine anderen Skripte auf der Seite. Die Seite verwendet striktes XHTML. Das Skript befindet sich direkt vor </body> .

    
Tomáš Zato 23.08.2013, 11:06
quelle

2 Antworten

7

Es wird vom Browser blockiert. window.open wird nur dann nicht blockiert, wenn es von einer Benutzeraktion aufgerufen wird, z. B. in einem Klickereignis, das von einem systemeigenen Browserereignis ausgegeben wird. Auch javaScript-emittierte Ereignisse werden blockiert, genau wie verzögerte setTimeout-Callbacks.

%Vor%

Sieh dir die Geige an. Ich habe es auch mit dem keypress -Event versucht, aber kein Glück.

window.open gibt einen gültigen Verweis auf das neue (oder ein vorhandenes benanntes) Fenster zurück oder null , wenn kein neues Fenster erstellt werden konnte.

    
metadings 23.08.2013, 11:25
quelle
-2

Versuchen Sie den nächsten Befehl nach window.open mit Timeout, zum Beispiel:

%Vor%     
Zsolt 24.01.2014 14:16
quelle

Tags und Links