Javascript: Browsersize und close
grOOvekill@ 30.06.2003 - 09:59 554 9
grOOvekill@
LegendVienna Badass
|
S'gott, ich hätte hier eine kleine Javascript Frage: 1.) Ich habe folgende Funktion in ein HTML File eingefügt, welches mir ein Öffnen von Links in einem neuen Browserfenster ermöglicht: function popMe(URL, fenster, stats){ window.open(URL, fenster, stats); }Hier der Aufruf: <a href="JavaScript opMe('http://www.bla.com/logo.jpg', '_blank', 'height=200,width=400,status=no,toolbar=no,menubar=no,location=no')">Link zu bla</a>
Funktioniert soweit ganz gut. Nur ist mir leider eben eingefallen, daß ich noch irgendwo im aufpoppenden Brwoserfenster einen Link einfügen wollte, der das Fenster auch wieder schließt. Sprich, unter dem jpg, das in dem neuen Browserfenster angezeigt wird, sollte "Fenster schließen" stehen. Ich weiß zwar, daß ich das mit <a href="javascript: close()">Fenster schliessen</a> machen kann, nur wo soll ich das einfügen? Geht ja eigentlich nur in dem HTML File, von welchem aus das Popup Fenster aufgerufen wird, oder? Ich hab' echt keinen blassen Schimmer, wie ich das neue Fenster mit diesem Link zusätzlich öffnen kann. Ideen?
|
atrox
in fairy dust... I trust!
|
im popup: window.close();
im aufrufer-dokument: windowvar = window.open(....); (...) windowvar.close();
|
grOOvekill@
LegendVienna Badass
|
Naja, wenn ich ein Popup HTML File hätte, dann wäre es ja einfach. Wenn ich aber beispielsweise einfach ein jpg in einem Popup öffne, dann existiert ja nicht wirklich ein html File, oder? Das heißt, ich habe auch keine Möglichkeit, irgendwo was einzutragen. Geht das, was ich vorhabe, überhaupt? Ich dachte, man kann eventuell irgenwelche Parameter im aufrufenden Fenster angeben, die sich auf das Popup auswirken. Da liege ich wohl falsch, nän?
|
atrox
in fairy dust... I trust!
|
ja.
|
Sokrates
Big d00d
|
Hi! Wie willst du ein jpeg in einem Popup öffnen ohne html Grundgerüst?
z.B <head> <title>[ xxxxx]</title> <LINK REL=stylesheet TYPE="text/css" HREF="css/fprtext.css"> <script>
var doPopUpX = (screen.width/2)-150; var doPopUpY = (screen.height/2)-100; var pos = "left="+doPopUpX+",top="+doPopUpY;
function doPopUp(){ doPopUpWindow = window.open("auswahl_mann_frau.html","valentin","width=410,height=205,"+pos); }
</script>
im popup dann folgendes..
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <head> <title>Mann</title> <LINK REL=stylesheet TYPE="text/css" HREF="css/fprtext.css"> </head>
<body> <table width="100%" height="95%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><img src="whatever.gif"></td> <td>Vergessen Sie bloß nicht auf das Geschenk für ihre Liebste ; )!</td> </tr> </table> <div align="center"> <A href="JavaScript:self.close()">Fenster schließen</a></div>
</body> </html>
das geht und bilder kannst du klarerweise immer einfügen.
hth Sokrates
|
Rektal
Here to stay
|
Normalerweise "baut" man sich extra dafuer eine HTML Geruest das einfach das Bild schon zentriert (falls das popup resized wird usw.). Wenn man es schlampig machen will und pfuschen will kann man aber den noetigen HTML code auch aus JS heraus generieren. Du oeffnest das neue Fenster mit der open Methode und wendest dann dessen write bzw. writeln Methode an um reinzuschreiben. function openmyl33tpopup(image) {
var w = window.open('', 'windowname', '');
w.writeln('<img src="' + image + '">');
Das ist das minimalistischste.
|
atrox
in fairy dust... I trust!
|
nicht eher so? var w=window.open(...); w.document.open(); w.document.writeln(...); w.document.close();
|
Rektal
Here to stay
|
ja eh w.document.*
|
Sokrates
Big d00d
|
hmmm! Stimmt aber ich persönlich finde eine eigene html site besser zu warten und übersichtlicher... Sokrates
|
Rektal
Here to stay
|
das 8k3a ließt mit tbreds um bis zu 20° zu hoch aus
Noch eine Anregung wie man popup links richtig setzt. Da popups usw. ultimativ auf js aufbauen ist es immer ein gewisser nachteil wenn nun ein agent ohne JS oder mit deaktiviertem JS auf einen Link trift. Der Agent kann zwar das popup nicht oeffnen lassen, das heisst aber nicht das ihm die information verweht bleiben muss wenn der Autor seine Seite trotzdem "zugaenglich" machen moechte. Schlechtes Beispiel: <a href="javascript ![:p](/images/smilies/tongue.gif) opup('neueseite.html');"> Ein Agent ohne JS support sieht den Link und kann nichts damit anfangen. Das Pseudo-Protokoll "javascript:" sagt ihm nicht; der Benutzer hat einfach nur einen toten Link oder noch schlimmer eine Fehlermeldung. Gutes Beispiel: <a href="neueseite.html" onclick="popup('neueseite.html'); return false;"> Der Agent mit JS support reagiert zuerst auf das onclick-Event. Dies fuehrt den JS code aus und gibt "false" zurueck. Das sagt dem Agent er soll das Klick event nicht weiterbehandeln und somit auch den HREF _nicht_ folgen. Der Agent ohne JS support hat einen gueltigen Link und kann trotzdem auf die neue Seite zugreifen; er ignoriert einfach das den definierten onclick handler. Eine ausgefeilte Variante ist diese: <a href="neueseite.html" target="neuesfenster" onclick="window.open(this.href, this.target); return false"> Ein Agent der kein JS kann, aber target interpretieren kann und auch fenster unterstuetzt kann den link in einem neuen fenster aufmachen ohne das die aktuelle seite history ist. Ein Agent mit JS arbeitet wie gewohnt. Ein weiterer Vorteil ist das man solche Links, dadurch das sie eine gueltiges HREF-Attribut enthalten, auch direkt Bookmarken kann.
|