Fenstergrößenproblem beim Öffnen von Bildern
Linus
- javascript
Hallo allerseits.
Ich habe das Problem, dass ich verschiedene Bilder (mit versch. Größen) in ein und dem selben Fenster öffen möchte.
Dazu benutze ich momentan folgendes:
Bild01
<a href="#" onclick="window.open('img/big/bild01.jpg','Fenster','width=320,height=420,resizable=yes,scrollbars=no,left=0,top=0');">
Bild02
<a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">
Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.
Die width und height Befehle des zweiten Scripts haben sozusagen keine Wirkung.
Wie kann ich diesen Fehler beheben?
Ich bin für Antworten äußerst dankbar..
Gruß
Linus
Sup!
Du könntest nicht beide Fenster Fenster nennen.
Gruesse,
Bio
Hallo, Bio,
Du könntest nicht beide Fenster Fenster nennen.
ja, grossartig, ganz grossartig. Erst nach einigen Wochen merkt man was man an Dir hat. Es war jetzt vielleicht nicht gleich der Brueller des Jahrzehnts, aber dennoch, man freut sich; man freut sich mal wieder etwas Sinnvolles und Nahrhaftes aufnehmen zu duerfen.
Also bitte nicht noch einmal unabgemeldet (?!) fuer einige Wochen verschwinden. Das war nicht nett. (Ich hoffe allerdings, dass es sich gelohnt hat ;-)
Gruss,
Ludger
Sup!
Du könntest nicht beide Fenster Fenster nennen.
Gruesse,
Bio
Aber dann würde ich doch nicht beide Bilder im selben Fenster öffnen und hätte zwei offene Fenster, was ich verhindern möchte.
Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?
cu, Mario
Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
In SelfHTML ist dazu kein treffendes Beispiel..
Hallo,
Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
In SelfHTML ist dazu kein treffendes Beispiel..
Doch. Sicherlich gibt's dazu ein passendes Beispiel. Da ist es: http://de.selfhtml.org/javascript/objekte/window.htm#close.
Gruß aus http://www.bonn.de/
Sven
Hallo,
Das wäre eine gute Möglichkeit, aber wie schließe ich das Fenster "Fenster" - also wo muss dieser Name rein?
In SelfHTML ist dazu kein treffendes Beispiel..Doch. Sicherlich gibt's dazu ein passendes Beispiel. Da ist es: http://de.selfhtml.org/javascript/objekte/window.htm#close.
Gruß aus http://www.bonn.de/
Sven
das kenne ich.. aber ich kann damit nichts anfangen. Variablen deklaration-
Gruß
Linus
Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?
cu, Mario
Hallo,
Kannst Du nicht vor jedem window.open Aufruf ein window.close ausführen?
Das würde sicherlich zu Problemen führen, wenn noch gar kein Zweitfenster geöffnet wurde.
Im Übrigen sehe ich nicht ein, warum man für einfache Bildvergrößerungen neue Fenster bemühen muss. Jeder normale Browser hat einen Back-Button.
Gruß aus http://www.bonn.de/
Sven
Hallo, Linus!
<a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">
Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=no,left=0,top=0');win.resizeTo(350,620);">
freundl. Grüsse aus Berlin, Raik
Hallo,
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=no,left=0,top=0');win.resizeTo(350,620);">
Wenn es schon resizable ist, was ja durchaus sinnvoll ist, sollte man auch scrollen können, um - bei kleiner gemachtem Fenster (z. B. weil die Auflösung kleiner ist als die Fenstergröße) - auch noch das ganze Bild betrachten zu können.
Desweiteren würde ich das Fenster nicht in der linken oberen Bildschirmecke positionieren, da es auch Leute gibt, die da Taskleisten etc. haben.
Also:
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=yes');win.resizeTo(350,620);return false">
Gruß aus http://www.bonn.de/
Sven
Wenn es schon resizable ist, was ja durchaus sinnvoll ist, sollte man auch scrollen können, um - bei kleiner gemachtem Fenster (z. B. weil die Auflösung kleiner ist als die Fenstergröße) - auch noch das ganze Bild betrachten zu können.
Desweiteren würde ich das Fenster nicht in der linken oberen Bildschirmecke positionieren, da es auch Leute gibt, die da Taskleisten etc. haben.
ok danke für die Hinweise
Also:
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=yes');win.resizeTo(350,620);return false">
Wenn ich das einfüge sagt mein Editor "Nicht abgeschlossene Zeichenfolgenkonstante" -- was hat das zu bedeuten?
Hallo,
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster',resizable=yes,scrollbars=yes');win.resizeTo(350,620);return false">
Wenn ich das einfüge sagt mein Editor "Nicht abgeschlossene Zeichenfolgenkonstante" -- was hat das zu bedeuten?
Argl...
Das liegt an der Rechtschreibprüfung dieses Forums.
Ersetze in obigem Quellcode alle ' durch ein Hochkomma ' . Dann sollte das ganze laufen.
Gruß aus http://www.bonn.de/
Sven
Argl...
Das liegt an der Rechtschreibprüfung dieses Forums.
Ersetze in obigem Quellcode alle ' durch ein Hochkomma ' . Dann sollte das ganze laufen.
Nein ich habe das ganze schon mit den Hochkommas gemacht.. ein wenig Ahnung hab ich schon ;)
Wofür steht das return false? Mit oder ohne.. Er zeigt immer wieder die Fehlermeldung.
Hallo,
Ersetze in obigem Quellcode alle ' durch ein Hochkomma ' . Dann sollte das ganze laufen.
Nein ich habe das ganze schon mit den Hochkommas gemacht.. ein wenig Ahnung hab ich schon ;)
;-)
Wofür steht das return false? Mit oder ohne.. Er zeigt immer wieder die Fehlermeldung.
Das return false sorgt dafür, dass der Link nicht mehr ausgeführt wird, wenn das JavaScript gelaufen ist.
Ich habe mir das Codefragment nochmal angesehen und ein paar Fehler ausgemerzt. So sollte es richtig laufen:
<a href="#" onclick="win=window.open('img/big/bild02.jpg','Fenster','resizable=yes,scrollbars=yes');win.resizeTo(350,620);return false;">
Gruß aus http://www.bonn.de/
Sven
Hallo allerseits.
Ich habe das Problem, dass ich verschiedene Bilder (mit versch. Größen) in ein und dem selben Fenster öffen möchte.
Dazu benutze ich momentan folgendes:Bild01
<a href="#" onclick="window.open('img/big/bild01.jpg','Fenster','width=320,height=420,resizable=yes,scrollbars=no,left=0,top=0');">
Bild02
<a href="#" onclick="window.open('img/big/bild02.jpg','Fenster','width=350,height=620,resizable=yes,scrollbars=no,left=0,top=0');">Wenn nun das erste Bild und anschließend das zweite geöffnet wird, wird das zweite (verkleinert) in der Rahmengröße des ersten angezeigt.
Die width und height Befehle des zweiten Scripts haben sozusagen keine Wirkung.
Wie kann ich diesen Fehler beheben?Ich bin für Antworten äußerst dankbar..
GrußLinus
Hallo,
ich warte gerade auf eine Antwort auf meine Frage - daher anbei ein kurzes Codebeispiel für eine ähnliche JS-Funktion - muß etwas verändert werden:
// Test ob Hilfe-Fenster bereits geoeffnet ist
if (! window.help) {
// Hilfe-Fenster unbekannt
windowExists = 0;
}
else if (help.closed == true) {
// Hilfe-Fenster bekannt, jedoch geschlossen
windowExists = 0;
}
else {
// Hilfe-Fenster bekannt und geoeffnet
windowExists = 1;
}
// Hilfe-Fenster schliessen, falls geoeffnet
if (windowExists == 1) help.close();
// Hilfe-Fenster oeffnen und fokussieren
help = window.open(url + escape(MsgID), "help", properties);
help.focus();
MfG
Ernst Richter
Moin,
pack am besten das Fenster-Aufmach-Kram in eine Funktion, die lediglich den Dateinamen und die neue Größe bekommt. In deen Links rufst du dann die Funktion entsprechend auf.
Ich hoff mal die Syntax stimmt, weil ich das jetzt nicht durchgetestet hab.
Das kommt in dein Hauptfenster von dem die Bilder geladen werden sollen.
<script language="JavaScript1.3" type="text/javascript">
// merkt sich das popup-fenster
var galerie;
function bilderPopUp(bild, breite, hoehe) {
// wenn das fenster zu ist, oder beime ersten aufruf
// neues fenster oeffnen
if (!galerie || galerie.closed) {
galerie = window.open('img/big'+bild, 'galerie', 'width='+breite+',height='+hoehe+',resizable=yes,scrollbars=no,menubar=no')
}
else
{
// (noch) bestehendes popup-fenster wiederverwenden
// groesse anpassen (evtl. ein paar pixel dazuaddieren)
galerie.resizeTo(breite, hoehe);
// und bild-URL setzen
galerie.location.href = 'img/big'+bild;
}
}
</script>
Dann in leicht veränderter Form:
Bild01
<a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">
Bild02
<a href="javascript:// Bild 2" onclick="bilderPopUp('img/big/bild02.jpg', 350, 620);">
Du wirst bei der Höhe vermutlich etwas dazugeben müssen, da die Fenstergröße sich incl. der Symbolleisten, Statuszeile etc. berechnet. Da diese aber je nach Browser unterschiedlich hoch sind wäre es evtl. sinnvoll, "toolbars", "menubar" & Co. auch auf "no" zu setzen.
Viel Spaß,
CirTap
Wow..
Ich kann nur staunen. Seit 2 Tagen bin ich nach so einem Script auf der suche.. leider gibts ne kleine Fehlermeldung
zum Einen musste ich das korrigieren damit das Bild angezeigt wurde
Bild01
<a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">
Es heißt dann
<a href="javascript:// Bild 1" onclick="bilderPopUp('/bild01.jpg', 320, 420);">
weil oben der Pfad "img/big" schon gesetzt ist:
galerie = window.open('img/big'+bild, 'galerie', 'width='+breite+',height='+hoehe+',resizable=yes,scrollbars=no,menubar=no')
wenn man dann das zweite folgend aufrufen möchte
<a href="javascript:// Bild 2" onclick="bilderPopUp('/bild02.jpg', 350, 620);">
dann meldet der Editor den Fehler
"Klasse unterstüzt keine Automatisierung"
was bedeutet das?
Trozdem schonmal Vielen Dank!!
Gruß
Linus
Andererseits benutze ich einen recht alten Editor mit dem 4.0 IE Explorer.
Der 6.0 macht dann einfach garnichts..
Der Editor weist übrigens auf diese Stelle
if (!galerie || galerie.closed) {
Gute Nacht allerseits..
Gruß
Linus
Hi,
wenn's nicht der Script aus PAFs Link tut ...
Der Editor weist übrigens auf diese Stelle
if (!galerie || galerie.closed) {
liegt wohl daran, dass das "neue" Fenster nicht zwischengespeichert wird. Sorry, für die Bugs, War wie gesagt aus dem Bauch raus einem älteren Script von mir nachgehackt.
Inzwischen ist mir auch eingefallen, wo ich den eingesetzt hab:
http://www.kyrhia.de/js/windetail.js
http://www.kyrhia.de/ausstellung/index.html
Die Funktion leistet mir seit Jahren gute Dienste als "popup-Macher".
Ist zwar dazu gedacht eine HTML-Seite anzuzeigen, aber ich denke, dass bekommst du rausgefummelt und URI ist URI :)
Dort habe ich den onclick-Handler allerdings in das Vorschaubild rein, da es danach ohnehin mit JS weitergeht. Nicht-scriptierbare werden anders "belohnt" :-)
Viel Spaß -- dropsdem
CirTap
Hallo,
Bild01
<a href="javascript:// Bild 1" onclick="bilderPopUp('img/big/bild01.jpg', 320, 420);">
Was soll denn »javascript:// Bild 1« sein? Ein Kommentar im href-Attribut?
Schon öfters hier vorgestellt:
<a href="img/big/bild01.jpg" onclick="bilderPopUp(this.href, 320, 420); return false">
Funktioniert dann auch ohne JavaScript.
Mathias
Re,
Was soll denn »javascript:// Bild 1« sein? Ein Kommentar im href-Attribut?
nur ein sinnloses Goodie: zeigt dir in der Statusleiste beim drübermausen diese "URL", anstelle eines '#' -- und macht eben auch "nix"
Schon öfters hier vorgestellt:
<a href="img/big/bild01.jpg" onclick="bilderPopUp(this.href, 320, 420); return false">
Funktioniert dann auch ohne JavaScript.
auch wahr :-) würde dann aber evtl. noch ein einheitliches target="blabla" zufügen, damit die aktuelle Seite/aktuelles Fenster stehen bleibt und "blabla" für die anderen Bilder-Links wiederverwendet werden kann.
CirTap
Hallo!
Ach waren das noch Zeiten, als hier in diesem Forum Christine Kühnel noch anwesend oder zumindest noch bekannt war...:
http://www.netz-notizen.de/javascript/tipps/image.htm
Lediglich Opera dürfte Probs mit window.open('','',Optionen) haben.
Viele Grüße aus Frankfurt/Main,
Patrick
Re PAF,
:-) an den erinner ich mich auch noch ... ein echter "Klassiker"
Glaub der entstand noch zu MSIE 3.x Zeiten ... <grusel>
Das HTML müsste allerdings etwas auf Stand gebracht werden ;)
Gruß,
CirTap