[AJAX] Popup öffnen

iGDark

Lt. Junior Grade
Dabei seit
Sep. 2005
Beiträge
303
Moin allerseits,

ich hab da so n kleines Problem bei dem ich einfach nicht weiter komme. Bin mir einfach nicht sicher ob das ganze was ich vorhab überhaupt möglich ist. Also folgender Sachverhalt:

Meine Page überprüft im Minutentakt per AJAX ob neue Nachrichten vorliegen. Falls ja wird der Titel der Homepage geändert in "Eine neue Nachricht" etc.. Das Funktioniert alles soweit ganz gut. Um die Sache zu perfektionieren möchte ich nun auch noch ein Popup öffnen.

Auf meiner Seite wird also bei jedem Nachrichtenabruf jetzt zusätzlich noch eine Seite per AJAX geladen. Quellcode dieser Seite ist dann wie folgt:

PHP:
<?
session_start();
include "dblogon.php";
?>
<head>
<script type="text/javascript">
function popup(site,n,w,h) {
    x = screen.availWidth/2-w/2;
    y = screen.availHeight/2-h/2;
    var popupWindow = window.open(
            site,n,'width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
      }
</script>
</head>
<body>
<?
		$sql="SELECT
					ID, Source, Datum, Message
			  FROM
					nachrichten
			  WHERE
					Destination ='".$_SESSION['ID']."'
			  AND
					Gelesen = 0";
		$result=mysql_query($sql);
		while($row=mysql_fetch_array($result)){
		$i++;
?>
			<script type="text/javascript">
				popup("index.php",<? echo $i;?>, 200, 300);
			</script>
<?			
		}
?>
</body>
Es wird also die SQL-Abfrage durchgeführt und und für jede neue Nachricht ein popup aufgerufen (derzeit einfach nur der Index, ich möchte erst einmal das das Popup überhaupt startet).
Das Skript selber funktioniert einwandfrei wenn ich es direkt aufrufe (Es öffnet je nach Anzahl der Nachrichten die dementsprechende Anzahl an popups).

Allerdings wird dieses Script ja nicht direkt, sondern per AJAX gestartet. AJAX lädt also die Datei (was es auch definitiv tut) und rennt durch. Von Popups ist jedoch keine Spur zu sehen.

Hier der AJAX-Code:
Code:
<script type="text/javascript">
function messpopup()
{
var xmlHttp;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    catch (e)
      {
      alert("Dein Browser unterstützt kein AJAX! Dadurch ist der Dynamische Nachrichtenempfang deaktiviert!");
      return false;
      }
    }
  }
  xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
      }
    }
  xmlHttp.open("GET","popup.php",true);
  xmlHttp.send(null);
  }
</script>
Die Funktion messpopup() wird derzeit durch die andere Funktion aufgerufen die den Titel aktuallisiert.
Also ist es möglich durch Seiten die im Hintergrund laufen überhaupt Popus zu starten oder muss ich das hier anders lösen? oder war ich einfach zu blöd und hab was übersehen?
Und bevor es jemand fragt: Ja mein Popup-Blocker ist ausgeschaltet ^^

Schöne Weihnachten und danke schon mal für die Hilfe falls eine Antwort kommt :D



EDIT:

Wenn ich das Script per iframe einbinde kommen die Popups auch hochgeschossen. aber ich möchte das ganze eig. im hintergrund ansteuern so das der user davon definitiv nix sieht und merkt :)
 
Zuletzt bearbeitet:
Top