Der folgende Beitrag wurde am 29. 03. 2007, 01:52 Uhr von luca_neuse veröffentlicht.
hallo leute,
zuerst: ich habe schon ein wenig programiererfahrung in verschiedenen sprachen und u.a. auch js.
ich habe nun allerdings ein problem! folgendes soll gemacht werden:
-------------------------------------------------------
eine seite index.html besteht. in dieser ist ein formular mit einer auswahlliste mit vielen bildern als angaben.
nun wird bei klick darauf ein popup erzeugt, welches genau DIESES bild anzeigt. so weit so gut. das ist ja eigentlich kein problem.
die eigentliche schwierigkeit liegt nun darin, das popup wieder zu schließen, wenn man das "alte/originale" fenster (--> index.htm) wieder fokussiert,
d.h.
--> fenstergroß (index.htm) ist bildschirmfüllend geöffnet,
--> kleines popup mit bild darin im/als focus darüber,
--> bei klick auf fensterGroß wird popup geschlossen, damit man das nächste bild auswählen kann.
nun habe ich mich stundenlang durch google gewühlt und nichts passendes gefunden.
--------------------------------------------------------
was ich zur erstellung des popups verwendet habe:
im formular: <select onChange="window.open(this.options[this.selectedIndex].value,'popup','menubar=no, directories=no, resizable=yes, location=yes, toolbar=no, height=363, width=484, top=130, left=340');>
so in etwa...
im head habe ich folgendes (sehr primitives) script stehen:
function check_focus()
{
if (document.forms.bilder.focus = true)
{
popup.window.close();
return;
}
else
{
self.close()
}
}
----------------------------------------------------------
so: nun meine frage:
gibt es die möglichekti das so zu firmulieren im (script)?
denn auf einigen seiten wurde das schon als lösungsvorschlag für ÄHNLICHE vorgehen gegeben. nur scheint dies nicht ganz auf mein problem abwandelbar zu sein.
(!) gibt es denn etwas zu beachten, wenn ich z.b. das popup fokussiert habe und auf das fenster dahinter zugreifen will? weil man muss ja im prinzip extern agieren...
das hatte ich mir übelegt, könnte möglicherweise ein problem dafür sein, dass es nicht klappt...
bitte um hilfe
es eilt zwar nicht sehr, aber es wurmt mich unheimlich, dass ich dieses problem nicht gefixed bekomme und im www und bei selfhtml keine lösung dafür finde...
bitte helft mir :D
mfg
luca
Der folgende Beitrag wurde am 29. 03. 2007, 01:57 Uhr von luca_neuse veröffentlicht.
was ich vielleicht noch vergessen habe ist:
wenn ich den code so benuztze, wie ich ihn soeben angegeben habe, dann funktioniert das ganze zwar in dem sinne, dass das popup immer nur EIN fenster bleibt, d.h. die bildadresse im popup wird nur aktualisiert und man behält die hauptseite und das popup und hat hinterher nicht zig geöffnete fenster, die zu 100%-1 aus popups bestehen...
das ist schon ein vorteil. aber es soll NOCH einfacher gehen.. nämlich mit einem einfachen klick ausserhalb des pop-ups und schon schließt sich dieses von selbt...
please help me ;)
Der folgende Beitrag wurde am 29. 03. 2007, 12:09 Uhr von Struppi veröffentlicht.
> die eigentliche schwierigkeit liegt nun darin, das popup wieder zu schließen, wenn man das "alte/originale" fenster (--> index.htm) wieder fokussiert,
> d.h.
> --> fenstergroß (index.htm) ist bildschirmfüllend geöffnet,
> --> kleines popup mit bild darin im/als focus darüber,
> --> bei klick auf fensterGroß wird popup geschlossen, damit man das nächste bild auswählen kann.
>
> nun habe ich mich stundenlang durch google gewühlt und nichts passendes gefunden.
Also erstmal wird ein Fenster nicht über dessen Namen angesprochen, sondern über den Rückgabewert der Funktion window.open(), den du aber verwirfst.
Und darüber kannst du das Fenster dann auch schliessen.
Wenn du das Fenster automatisch schliessen willst, hast du mehrere Möglicheiten, entweder im Popup:window.onblur = window.close
oder im Hauptfenster
window.onfoucs = function()
{
if( [FensterReferenz] ) [FensterReferenz].close();
}
Struppi.
--
Javascript ist toll (Perl auch!)
Der folgende Beitrag wurde am 29. 03. 2007, 15:31 Uhr von luca_neuse veröffentlicht.
also erstmal vielen dank für die flinke antwort struppi :)
----------------------------------------------------------
> Also erstmal wird ein Fenster nicht über dessen Namen angesprochen,
also soweit mir das so bekannt ist, kann man popups, die man erstellt hat mit ihrem wert oder namen auswählen kann:
[code lang=javascript]fenstername = window.open("...","width=...");
oder
window.open("","fenstername","width=...");
müsste doch beides über
window.close()
oder fenstername.window.close() geschlossen werden können...
jetzt nur als beispiel.. :-P
sondern über den Rückgabewert der Funktion window.open(), den du aber verwirfst.
das verstehe ich nicht ganz. was meinst du mit dem rückgabewert? false und true?
und was meinst du mit, dass ich diesen verwerfe?
ich frage diesen doch in der if-schleife ab?!... :-|
> Wenn du das Fenster automatisch schliessen willst, hast du mehrere Möglicheiten, entweder im Popup:
> window.onblur = window.close
dazu muss ich sagen, dass ich ja gar keine möglichkeit habe, irgendeinen text in das popup zu schreiben, weil es ja mit vielen verschiedenen bildern geöffnet wird/werden soll.
ich habe hier einmal die beispieldatei hochgeladen. schau/t sie dir/euch doch einmal an:
http://home.arcor.de/luca.neuse/
> oder im Hauptfenster
>
> window.onfoucs = function()
> {
> if( [FensterReferenz] ) [FensterReferenz].close();
> }
>
dazu muss ich sagen:
mit blur und focus und auch onfocus habe ich schon vieles versucht.
aber dein vorschlag hier werde ich gleich mal testen.
noch eine frage dazu allerdings.
was meinst du genau mit fensterreferenz?? den namen des fensters??
und wo genau kommt das window.onfocus deiner meinung nach hin? in den body tag? und die function als script in den head oder in den body?
da bin ich mir nicht ganz sicher, was du mit dieser schreibweise meinst... :-/
hilf mir doch bitte noch einmal kurz auf die sprünge..
das wäre nett Struppi
danke
mfg
luca
Der folgende Beitrag wurde am 29. 03. 2007, 15:50 Uhr von Struppi veröffentlicht.
> > Also erstmal wird ein Fenster nicht über dessen Namen angesprochen,
> also soweit mir das so bekannt ist, kann man popups, die man erstellt hat mit ihrem wert oder namen auswählen kann:
Dann weißt du etwas falsches. schau nochmal in selfhtml.
> sondern über den Rückgabewert der Funktion window.open(), den du aber verwirfst.
> das verstehe ich nicht ganz. was meinst du mit dem rückgabewert? false und true?
Der Rückgabewert von window.open() ist eine Fensterinstanz.
> und was meinst du mit, dass ich diesen verwerfe?
> ich frage diesen doch in der if-schleife ab?!... :-|
Es gibt keine if Schleifen.
und den Rückgabewert von window.open() verwirfst du hier:
<select onChange="window.open(....);>
> > Wenn du das Fenster automatisch schliessen willst, hast du mehrere Möglicheiten, entweder im Popup:
> > window.onblur = window.close
> dazu muss ich sagen, dass ich ja gar keine möglichkeit habe, irgendeinen text in das popup zu schreiben, weil es ja mit vielen verschiedenen bildern geöffnet wird/werden soll.
> ich habe hier einmal die beispieldatei hochgeladen. schau/t sie dir/euch doch einmal an:
> http://home.arcor.de/luca.neuse/
Schau mal in die JS Fehlerkonsole!
Du solltest soweiso statt nur das Bild im Popup zu öffnen dort HTML code hineinschreiben dann klappt es auch mit dem öffnen.
Ich hab dazu ein Skript, dass das Prinzip anwendet: http://javascript.jstruebig.de/skripte/7/
> noch eine frage dazu allerdings.
> was meinst du genau mit fensterreferenz?? den namen des fensters??
Nein, der Rückgabewert von window.open()
> und wo genau kommt das window.onfocus deiner meinung nach hin? in den body tag? und die function als script in den head oder in den body?
In einem Scriptblock entweder im head oder body
Struppi.
--
Javascript ist toll (Perl auch!)
Der folgende Beitrag wurde am 29. 03. 2007, 18:38 Uhr von luca veröffentlicht.
> Dann weißt du etwas falsches. schau nochmal in selfhtml.
naja. hier ist es einmal mit document:
http://de.selfhtml.org/javascript/objekte/document.htm#allgemeines
hier geht es über fenstername.close():
http://de.selfhtml.org/javascript/objekte/window.htm#close
etwas über name.window.close habe ich grad leider nicht mehr gefunden. ich weiß aber, dass ich es irgendwo in selfhtml ma gelesene habe...
> Der Rückgabewert von window.open() ist eine Fensterinstanz.
wenn ich also if( [FensterReferenz] ) [FensterReferenz].close();
einfügen soll, dann entpsricht fensterreferenz einfach nur window.open()???
> Es gibt keine if Schleifen.
gut ;) dann eben if-abfragen o.ä. whatever...
> und den Rückgabewert von window.open() verwirfst du hier:
> <select onChange="window.open(....);>
d.h. sobald ich ihn also für z.b. onChange oder onLoad o.ä. einsetze, funktioniert es nicht, gibt es mir keinen rückgabewert zurück?
> Schau mal in die JS Fehlerkonsole!
> Du solltest soweiso statt nur das Bild im Popup zu öffnen dort HTML code hineinschreiben dann klappt es auch mit dem öffnen.
>
> Ich hab dazu ein Skript, dass das Prinzip anwendet: http://javascript.jstruebig.de/skripte/7/
kann ich denn text in ein popup reinschrieben, was dynamisch mit jedem bild geändert werden muss, ohne jede seite einzeln zu schreiben. das kommt bei >100 bildern etwas blöd :-/
etwas ähnliches hast du ja in deinem script gemacht richtig?! geht das auch umständlicher?
> > was meinst du genau mit fensterreferenz?? den namen des fensters??
>
> Nein, der Rückgabewert von window.open()
und das bedeutet? sorry.. versteh dich nicht ganz :-/
tschuldige, wenn ich so lange brauche, um das zu verstehen ;)
Der folgende Beitrag wurde am 29. 03. 2007, 21:14 Uhr von wahsaga veröffentlicht.
hi,
> > Der Rückgabewert von window.open() ist eine Fensterinstanz.
> wenn ich also if( [FensterReferenz] ) [FensterReferenz].close();
> einfügen soll, dann entpsricht fensterreferenz einfach nur window.open()???
Wenn du es an beiden Stellen, wo jetzt [FensterReferenz] einfügst, ist das unsinnig - weil du damit das Fenster zwei mal öffnest.
> > und den Rückgabewert von window.open() verwirfst du hier:
> > <select onChange="window.open(....);>
> d.h. sobald ich ihn also für z.b. onChange oder onLoad o.ä. einsetze, funktioniert es nicht, gibt es mir keinen rückgabewert zurück?
Nein - aber du zeigst in diesem Codebeispiel keinerlei Interesse an, lässt ihn also "verfallen", weil du ihn nicht aufbewahrst.
> > > was meinst du genau mit fensterreferenz?? den namen des fensters??
> >
> > Nein, der Rückgabewert von window.open()
> und das bedeutet? sorry.. versteh dich nicht ganz :-/
Beschäftige dich mit dem grundlegenden Konzept von Funktionen und Methoden, und was es bedeutet, wenn diese einen Rückgabewert haben, und was man damit machen kann.
gruß,
wahsaga
--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4