mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 10.08.2006, 15:49   #1
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg

automatisches schließen von pop ups


hallo,

dieses thema mag schon öfters angesprochen worden sein, und auch wenn man googelt, gibts viele treffer. leider hat es alles nicht geholfen, so dass ich das jetzt klipp und klar hier nachfragen muss.

ich habe eine ausgangsseite, von der aus ich über einen bildlink ein pop up öffnen möchte, welches sich wiederum automatisch schließen soll, wenn das pop up fenster den focus verliert. eigentlich ja ganz einfach, funktioniert aber doch alles nicht so, wie ich es erwarten würde.

hier der code (test):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test Index</title>

<script language="JavaScript">
<!--
function open_popup(pageURL,winName,features) {
myPopWin=window.open(pageURL,winName,features);
myPopWin.focus();
//myPopWin.onblur = myPopWin.close();
}
-->
</script>


</head>

<body>
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="600" align="center" valign="middle">
<font face="Verdana, Arial, Helvetica, sans-serif">Test Index</font>
<p>&nbsp;<p>
<a href="#" onclick= "open_popup('test_fs.html','myPopUp','width=500,height=500,screenX=80,screenY=130')">
<img src="TestImg.gif" alt="Pop Up" width="120" height="40" border="0" /></a>

</td>
</tr>
</table>
</body>
</html>


der auskommentierte code ist nur ein versuch, der dann aber zu einem javascript fehler führt. das äußert sich dahingehend, dass das fenster sofort wieder geschlossen wird und folgender fehler in der JS-konsole auftaucht:
Zitat:
Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIControllers.removeController]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://browser/content/search.xml :: onxbldestructor :: line 77" data: no]
den tips einiger webforen zufolge habe ich es auch schon im pop up selbst mit dem folgenden code im head versucht:
Zitat:
<script type="text/javascript">
<!--
window.onblur = window.close;
//-->
</script>
das funktioniert leider so gut, dass sich das fenster auch dann schließt, wenn man hineinklickt. womöglich liegt es daran, dass es ein frameset ist.

um es komplett zu machen, hier nochmal der html code des pop up fensters (ohne den javascript code):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test FS</title>
</head>

<frameset rows="*,*"" frameborder="NO" border="0" framespacing="0">
<frame src="Test1.html" name="topFrame" id="topFrame" title="topFrame" />
<frame src="Test2.html" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body>
</body>
</noframes></html>
lxxl ist offline   Mit Zitat antworten


Alt 11.08.2006, 09:52   #2
TP-Moderator
 
Benutzerbild von Nightline
 
Registriert seit: Jan 2003
Ort: Wien
Nightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKE
Das dürfte tatsächlich am Frameset liegen. Du kannst das Problem dennoch lösen, indem du statt dem Frameset eine normale Datei mit zwei IFrames nimmst:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Test Index</title>

</
head>

<
body style="margin:0; padding:0;" onblur="window.close()">
<
iframe src="dsfasd.htm" width="100%" height="250px"></iframe>
<
iframe src="sdffasd.htm" width="100%" height="250px"></iframe>
</
body>
</
html
Ist zwar nicht die beste Lösung, aber sie funktioniert.
__________________
+lg Nightline
-------------------------
Fotos von Reisen und Veranstaltungen: http://www.coeser.de/ontour
Fotoportfolio: http://www.coeser.de/showcase/
DeviantArt-Account: http://nightline.deviantart.com
Nightline ist offline   Mit Zitat antworten
Alt 11.08.2006, 14:04   #3
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
besten dank schonmal. ich werde das machen, wenn keine andere lösung mehr greift.

übrigens kam der oben angesprochene javascript fehler wegen der klammern hinter dem close zustande. ohne funktioniert das genauso gut (oder schlecht), wie das script im popup.

PHP-Code:
<script language="JavaScript">
<!--
function 
open_popup(pageURL,winName,features) {
myPopWin=window.open(pageURL,winName,features);
if (
window.focus) {myPopWin.focus();}
myPopWin.onblur myPopWin.close;
return 
false;
}
-->
</script> 
kann mir eigentlich jemand in diesem zusammenhang mal erklären warum
myPopWin.onblur = myPopWin.close; funktioniert und if (myPopWin.onblur) {myPopWin.close;} nicht?

und eigentlich müsste es doch möglich sein, statt myPopWin.onblur
PHP-Code:
window.onfocus myPopWin.close
einzusetzen (was nicht funktioniert) bzw. irgendetwas zu schreiben, womit man das fenster, das das pop up geöffnet hat, anzusprechen. d.h. wenn man auf die ausgangsseite zurückkommt, wird das pop up geschlossen, nicht aber, wenn man auf ein ganz anderes browserfenster klickt.

Geändert von lxxl (11.08.2006 um 14:07 Uhr).
lxxl ist offline   Mit Zitat antworten
Alt 11.08.2006, 14:30   #4
TP-Moderator
 
Benutzerbild von Nightline
 
Registriert seit: Jan 2003
Ort: Wien
Nightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKE
PHP-Code:
if (myPopWin.onblur) {myPopWin.close;} 
Ich bin mir jetzt nicht ganz sicher, aber ich glaube das funktioniert nicht, weil du mit if (myPopWin.onblur) lediglich abfragst, ob das Ereignis "onblur" registriert ist oder nicht. Du fragst damit also nicht ab, ob "onblur" ausgelöst wurde.
__________________
+lg Nightline
-------------------------
Fotos von Reisen und Veranstaltungen: http://www.coeser.de/ontour
Fotoportfolio: http://www.coeser.de/showcase/
DeviantArt-Account: http://nightline.deviantart.com
Nightline ist offline   Mit Zitat antworten
Alt 11.08.2006, 14:48   #5
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
ähm, und wie würde man denn dann eine konditionalabfrage machen?
lxxl ist offline   Mit Zitat antworten
Alt 11.08.2006, 15:58   #6
TP-Moderator
 
Benutzerbild von Nightline
 
Registriert seit: Jan 2003
Ort: Wien
Nightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKE
Ohne if denke ich.
PHP-Code:
<body onblur="myPopWin.close;"
__________________
+lg Nightline
-------------------------
Fotos von Reisen und Veranstaltungen: http://www.coeser.de/ontour
Fotoportfolio: http://www.coeser.de/showcase/
DeviantArt-Account: http://nightline.deviantart.com
Nightline ist offline   Mit Zitat antworten
Alt 11.08.2006, 16:49   #7
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
naja, aber wie läuft das innerhalb eines javascriptcodes? theoretisch könnte man ja auch noch weitere befehle ausführen lassen, wenn ein bestimmter zustand zutrifft oder ggf. eine else anweisung folgen lassen.
das hat mit dem eigentlichen problem hier weniger zu tun, vielmehr verstehe ich die grundsätzliche funktionsweise nicht.
im prinzip verstehe ich auch nicht, warum ich nicht einfach das ausgangsfenster in eine variable packen und dann sagen kann: wenn eben dieses ausgangsfenster (variable?) aktiviert wird, dann soll sich das popup (myPopWin) schließen.
kann doch eigentlich nicht so schwer sein.
lxxl ist offline   Mit Zitat antworten
Alt 11.08.2006, 17:22   #8
TP-Moderator
 
Benutzerbild von Nightline
 
Registriert seit: Jan 2003
Ort: Wien
Nightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKE
Puuuh, langsam komm ich ins Schwitzen hier. Bin da auch in der Theorie etwas überfragt...

Wenn du mehrere Befehle ausführen willst, dann machst du am besten eine Funktion, die bei onblur aufgerufen wird. Da kannst du dann ja deine Bedingungen erstellen.

Das Prinzip, das Fenster in eine Variable zu setzen geht sehr wohl, nur habe ich das in der Praxis noch nicht angewendet. Deshalb kann ich dir hier leider auch nicht weiterhelfen!
__________________
+lg Nightline
-------------------------
Fotos von Reisen und Veranstaltungen: http://www.coeser.de/ontour
Fotoportfolio: http://www.coeser.de/showcase/
DeviantArt-Account: http://nightline.deviantart.com
Nightline ist offline   Mit Zitat antworten
Alt 11.08.2006, 21:07   #9
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
vielleicht können wir uns ja schrittweise einer erleuchtung nähern.

nr.1: wie kann ich das ausgangsfenster in eine variable speichern?

vielleicht myBaseWin = window;? scheint aber nicht zu funktionieren.
eigentlich müsste ja window bereits ausreichen, da der code oben im header script (if (window.focus) {myPopWin.focus();}) ja offenbar ganz prächtig funzt. danach kann man dann aber leider nix mehr mit window anfangen. zumindest weiß ich nicht wie.

Geändert von lxxl (11.08.2006 um 21:09 Uhr).
lxxl ist offline   Mit Zitat antworten
Alt 12.08.2006, 03:54   #10
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
tja, wohl unmöglich, was ich da verlange, wa?

leider kann ich auch nicht bestätigen, dass die iframe lösung funktioniert. wie sollte sie auch!? das popup fenster verliert ja nach wie vor den fokus und wird somit geschlossen (spätestens wenn man auf links innerhalb der eingebetteten dokumente klickt, eigentlich reicht aber schon ein klick in eine leere fläche), iframes oder framesets – völlig egal.

ein großes problem scheint auch in der doch recht seltsamen funktionsweise von onfocus zu liegen. keine ahnung, wie man das im zusammenhang mit dem window-objekt sinnvoll verwenden kann.

lxxl ist offline   Mit Zitat antworten
Alt 12.08.2006, 13:50   #11
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
habe nun doch noch eine lösung gefunden:
quelle: http://forum.de.selfhtml.org/archiv/2003/1/t36518/#top

demnach sieht mein javascript code im head jetzt folgendermaßen aus:

PHP-Code:
<script language="JavaScript">
<!--
var 
myPopWin null;
function 
open_popup(pageURL,winName,features) {
myPopWin window.open(pageURL,winName,features);
if (
window.focus) {myPopWin.focus();}
window.onfocus = function () {
  if(!
myPopWin) {return;}
  
myPopWin.close();
  
myPopWin null;
  
window.onfocus null;
}
return 
false;
}
//-->
</script> 
habe ich bislang allerdings nur mit firefox 1.06 und IE 6.0 getestet

na denn, schönes wochenende noch allerseits!
lxxl ist offline   Mit Zitat antworten
Alt 14.08.2006, 10:28   #12
TP-Moderator
 
Benutzerbild von Nightline
 
Registriert seit: Jan 2003
Ort: Wien
Nightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKENightline ist ein richtiges Arbeitstier - DANKE
Zitat:
Zitat von lxxl
tja, wohl unmöglich, was ich da verlange, wa?
Ungeduldig?

War über das Wochenende nicht daheim, deshalb keine weitere Antwort. Aber schön zu sehen, dass du das Problem mittlerweile sowieso selbst gelöst hast.
__________________
+lg Nightline
-------------------------
Fotos von Reisen und Veranstaltungen: http://www.coeser.de/ontour
Fotoportfolio: http://www.coeser.de/showcase/
DeviantArt-Account: http://nightline.deviantart.com
Nightline ist offline   Mit Zitat antworten
Alt 14.08.2006, 12:36   #13
TP-Member
 
Registriert seit: Apr 2005
lxxl ist auf einem guten Weg
nix für ungut, meine ungeduld hat sich bestimmt nicht gegen dich gerichtet. ich hatte mich mit dem problem wohl schon etwas zu lange herumgeschlagen. dabei war ich eigentlich der meinung, dass es sich hier um eine lappalie handelt, die sich im nu erledigt hat.

nun denn, jetzt ist alles bene. mögen andere fürderhin schneller zur lösung kommen.
lxxl ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Traum-Talk > Webdesign & Co.
automatisches schließen von pop ups automatisches schließen von pop ups
« Wenn ich meine Seite aufrufe meldet sich mein Rooter ab !? | Laufende Navbar (Javascript?) »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:49 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67