Popup-Fenster in Ajax-Success-Handler blockiert

8

Ich versuche, ein Popup-Fenster zu öffnen, um es einem Benutzer zu ermöglichen, sich mit Twitter zu authentifizieren, ohne die Seite verlassen zu müssen, die er gerade betrachtet. Ich habe diese Technik im Internet gesehen, insbesondere mit der Anwendung "Disqus kommenting". Ich kann jedoch nur zwei Ergebnisse erhalten, entweder eine Meldung "Popup-Fenster blockiert" oder gar nichts.

Ich habe versucht, die hier beschriebenen Ansätze hier und hier . Wie kann ich das beheben?

Mein Code sieht derzeit so aus:

%Vor%     
providence 14.08.2011, 21:39
quelle

2 Antworten

20

Die Popup-Blocker im Browser blockieren die Popups, wenn der Code im Skriptausführungskontext ausgeführt wird.

Wenn z. B. ein neues Fenster für einen Anker geöffnet wird, wird der Popup-Blocker nicht blockiert, aber wenn wir versuchen, ein neues Fenster mit setTimeout zu öffnen, sehen Sie, dass der Popup-Blocker dies blockiert. Dies liegt daran, dass der Kontext bei einer Zeitüberschreitung jetzt der Skriptausführungskontext anstelle der Benutzeraktion ist. Dies ist das gleiche Verhalten, wenn wir versuchen, ein neues Fenster in einem Ajax-Callback-Handler zu öffnen.

Ich denke, Sie sind in einer ähnlichen Situation.

Live Beispiel

Wenn Sie aus irgendeinem Grund das Popup im Ajax-Success-Handler selbst öffnen möchten, können Sie es mit einem synchronen Ajax-Aufruf erreichen. Das Popup wird nicht blockiert.

    
ShankarSangoli 14.08.2011, 22:54
quelle
0

Das Problem könnte in den folgenden Bereichen liegen ... 1. Das windowSizeArray enthält nur ein einzelnes Element. 2. Der Code $ ('. Twitter_popup'). Attr ("rel") könnte Ihnen einige Diff-Ergebnisse geben, als erwartet, weil der Klassenname als Selektor verwendet wird.

    
Parv Sharma 14.08.2011 22:04
quelle

Tags und Links