Link aus PopUp Fenster in Frame eines anderen Fensters öffnen?
André
- html
Hi!
Also ich hab ein PopUp Menu gebastelt.. das mit Rahmenlosen PopUp Fenstern arbeite.. jetzt ist mein Problem nur das ich in diesen neuen PopUp Fenster Links haben die sich in dem HauptHomepage Fenster in den mittleren Frame laden sollen.
Was schreibe ich den jetzt bei target=".." hineine damit er das dorthin öffnet.. oder muss ich das ganz anders machen?
Danke schonmal für Eure Hilfe...
Hallo
vielleicht den namen des frames, weiß aber net, ob ds klappt...
ansonsten kannst du ja mit opener auf das objekt zurückgreifen, was das popup geöffnet hat. dann müsstest du nur noch irgendwie mit opener.frams[1].locaton.href oder so versuchen, die site zu ändern
Grüße
David
Hi!
Danke schonmal für den tipp werde das damit veruschen..
Kurz zur Info... hab eine index.html mit den Frames "Links, Mitte, Oben, Rechts". Das PopUp wird aus dem Frame "Links" (mit Links.html) gestartet. Also komme ich mit opener dann auch in dieses Fram zurück? Kann ich dann von dort aus in "Mitte" kommen oder muss ich erst auf die index.html zurück gehen?
Wo schreib ich den diese opener..... Zeile rein.. ind das Taget="" oder wo muss die hin?
Danke schonmal..
Hallo
So, ich habe das mal ausprobiert... Du kannst in dem POpup einfach links mit target nehmen und als target den entsprechenden Frame-Namen angeben.
Hier mein Bsp (schlechtestes 2-min-test-html :))
fs.htm:
<html>
<frameset rows="25%,*">
<frame src="oben.htm" name="oben">
<frame src="unten.htm" name="unten">
</frameset>
</html>
oben.htm:
<html>
<body onLoad="JavaScript:window.open('popup.htm', 'name', 'width=300,height=50');">
OBEN
</body>
</html>
unten.htm:
<html>
<body>
UNTEN
</body>
</html>
popup.htm:
<html>
<body>
<a href="http://web.de" target="unten">WEB.de</a>
</body>
</html>
Grüße
David
Hi!
Hab dein BSP eben ausgetestet. Geht einwandfrei.. der einzige unterschied ist das bei mir das popfenster.. nicht über nen popup.html erzeugt wird sondern dynamisch.
(Code unten)
Der wichtige Teil hier ist der oPopBody.innerHTML ="...."
Darin steht der Code des PopUp Fensters (net von ImageMap verwirren lassen). Hab dort genauso einfach href=.." gesetzt.. sowei den target="Mitte" aber trotzdem öffnet der nix in das Frame Mitte des Hauptfensters!
<SCRIPT LANGUAGE="JScript">
var Kontakt = window.createPopup();
function openKontakt()
{
var oPopBody = Kontakt.document.body;
oPopBody.onmouseleave = Kontakt.hide
oPopBody.innerHTML = "<"+"div style='position:absolute; top:0; left:0; width:228px; height:44px; background : background;><hr size='0'><img src='grafiken/untermenu_kontakt.jpg' usemap='#untermenu_kontakt' border='0'><map name='untermenu_kontakt'><area shape='rect' coords='121,24,223,36' href='leer.html' target='Mitte'><area shape='rect' coords='119,6,209,18' href='leer.html' alt='' target='Mitte'></map></div>";
Kontakt.show(13,334, 228, 43, document.body);
}
Mach ich was falsch oder soll ich das PopUp lieber per z.B. popup.html generieren? Geht das nicht mit dynamischen HTML erzeugten PopUp?
Gruß,
André
Hallo
ich habe des grad mal ausprobiert und bei mir wird zwar ein link richtig dargestellt, aber ic kann ihn auch net anklicken bzw ausführen. noch nichtmal bei target="_blank" passiert was...
soweit wie ich deinen code aber sehe, ist da ja nichts dran, wasdyn. erzeugt werden müsste, dann kannst du das ja auch per popup machen...
Grüße
David
Hm.. das stimmt eigentlich.. nur muss ich auch ein spezielles PopUp erzeugen.. zwar eins ohne Rand (ist ja schliesslich für ine PopUp menu gedacht und diese PopUp fenste stellt die untermneu punkte da)
Wie erzeuge ich den mit window.open ein Fenster mit den eigenschafen.. das also nur die Seite ohne sichtbares "Fenster" angezeigt wird.
Verstehst du was ich meine?
Vielen, vielen danke nochmal ;o)!
Gruß,
André
Anschliesend an den obigen thread.. hab ich nun folgendes Problem.
wie öffne ich mit Window.open(..) Ein Fenster das keinen Fenster-Rahmen usw enthält, also was nur den popup.html anzeigt.. ohne Minimierungsbutton, X-Button, usw....
Danke schonmal für Eure Antworten..
Gruß,
André
Hallo!
Was Du meinst war bis vor kurzer Zeit noch durch einen Trick möglich - mittlerweile hat Microsoft da aber (begründeterweise) einen Riegel vorgeschoben. Der Trick war ein Popup fullscreen zu öffnen und dann praktisch gleichzeitig wieder zu verkleinern. Das Ergebnis war ein rahmenloses Popup. Du brauchst aber nicht mehr drüber nachdzudenken, da daß mittlerweile z.B. unter XP nicht mehr funktioniert, sondern nur unter den alten Microsoft Systemen.
Schönen Gruß
Thomas
Anschliesend an den obigen thread.. hab ich nun folgendes Problem.
wie öffne ich mit Window.open(..) Ein Fenster das keinen Fenster-Rahmen usw enthält, also was nur den popup.html anzeigt.. ohne Minimierungsbutton, X-Button, usw....
Hallo, André,
Kurz zur Info... hab eine index.html mit den Frames "Links, Mitte, Oben, Rechts". Das PopUp wird aus dem Frame "Links" (mit Links.html) gestartet. Also komme ich mit opener dann auch in dieses Fram zurück?
Exakt.
Kann ich dann von dort aus in "Mitte" kommen oder muss ich erst auf die index.html zurück gehen?
Ja, gewissermaßen, du musst über das Frameset gehen.
Angenommen der Frame in der Mitte heißt »mitte« (name-Attribut beim frame-Element), dann wäre das in etwa: opener.parent.mitte.location.href, sofern ich mich nicht täusche.
opener.parent.mitte.location.href
^^^^^^ ^^^^^^ ^^^^^
| | |
| | Zum Frame namens »mitte«.
| |
| Nach oben zum darüberliegenden Frameset.
|
Zum Dokument (Fenster/Frame), welches das Popup geöffnet hat.
Svens Artikel erklärt das veranschaulichend, Abschnitt Popups: http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/
Wo schreib ich den diese opener..... Zeile rein.. ind das Taget="" oder wo muss die hin?
Nein, mit dem target-Attribut kannst du hier nichts anfangen, da es nur _top, _parent, _self, _blank und [Framename auf gleicher Unterebene] kennt (http://www.w3.org/TR/html401/types.html#type-frame-target).
Du solltest die JavaScript-Anweisung in dem jeweiligen onclick-Attribut des a-Linkelements beziehungsweise des area-Elements (bei deiner Image Map) unterbringen:
<a href="seite.html" onclick="opener.mitte.location.href=this.href; return false;"> ... </a>
Wenn du zusätzlich das href-Attribut richtig ausfüllst, wird, wenn der Benutzer JavaScript deaktiviert hat, die Seite dennoch aufgerufen, sofern der Rest der Seite und das Popup-Fenster auch zugänglich ist (http://home.t-online.de/home/dj5nu/js-popup.html). Dadurch können auch Suchmaschinen die Unterseiten finden.
Im Übrigen würde ich deinen Projektaufbau auf Einfachheit und Verständlichkeit überprüfen, denn vier Frames und zusätzlich ein Navigationspopup zeugt von einer suboptimalen Struktur, möchte ich behaupten, wobei mir die Umstände natürlich nicht bekannt sind.
Grüße,
Mathias
Hi!
vielen Dank für die lange Antwort... hab das auch direkt ausgetestet.. aber egal was ich versuche er sagt mir immmer z.b. 'opener.parent' ist Null oder kein Objekt.
Heißt das, das es diese Seite nicht gibt? oder geh ich nur falsch referenzieren?
Hier nun mein neuer Code des PopUp Fensters:
var Kontakt = window.createPopup();
function openKontakt()
{
var oPopBody = Kontakt.document.body;
oPopBody.onmouseleave = Kontakt.hide
oPopBody.innerHTML = "<"+"div style=position:absolute; top:0; left:0; width:228px; height:44px; background : background><img src='grafiken/untermenu_kontakt.jpg' usemap='#untermenu_kontakt' border='0'><map name='untermenu_kontakt'><area shape='rect' coords='121,24,223,36' href='leer.html' onclick='opener.parent.Mitte.location.href=this.href; return false;' target='Mitte'><area shape='rect' coords='119,6,209,18' href='leer.html' alt='' target='Mitte'></map></div>";
Kontakt.show(13,334, 228, 43,document.body);
}
Was hab ich falsch gemacht. Hab mir auch die Texte bei den Links durchgelesen. demnach müsste ich eigentliche richtig mich nach oben gehangelt haben. Oder zählt das mit window.createPopUp aufgemachte Fenster net als PopUp?
Vielleicht ist es ja auch nur nen Fehler bei mir:
Hier mein Framsetting + PopUp: (nur skizze!)
index.html:
____________________________
Oben |Rechts |
__________________| |
Links| Mitte | |
__\_|____________|________|
\
\______
|PopUp|
-------
das PopUp wird von Links.html im Links-Frame aufgemacht
Also muss das doch onclick="opener.parent.Mitte.location.href=this.href;return false;"
stimmen???
Hoffe auf eine Antwort..
Viele Danke nochmal..
Gruß,
André
Hallo, André,
ich nehme stark an, dass wir aneinander vorbeireden, denn soweit ich mutmaßen kann, handelt es sich gar nicht um ein Popup-Fenster, das heißt ein neuen Browserfenster, was du öffnen willst, sondern nur um einen seiteninternen DHTML-Effekt, auch Popup-Menü genannt. Deshalb sind die von mir genannten Hinweise darauf natürlich nicht anzuwenden.
var Kontakt = window.createPopup();
Die Funktionsweise der Funktion createPopup ist mir unbekannt, deshalb kann ich zu eventuell dort enthaltenen Fehlerquellen nichts sagen.
function openKontakt()
{
var oPopBody = Kontakt.document.body;
Das weist darauf hin, dass das von dir gemeinte »Popup« durchaus ein Fenster ist, deshalb dachte ich, du redest von einem window.open()-Popupfenster, aber anscheinend geht es um einen iframe, welcher von createPopup() eingebunden wird.
Du solltest natürlich keine Programmteile verwenden, die du selbst nicht annähernd verstehst...
oPopBody.onmouseleave = Kontakt.hide
Was soll das bezwecken? Den Event onmouseleave kenne ich nicht, ist womöglich JScript-Syntax und somit solltest du ihn nicht verwenden. onmouseout wäre passender.
oPopBody.innerHTML
Das ist meiner Meinung nach schlichtweg Blödsinn. Entweder verwende eine statische oder serverseitig dynamisch generierte Seite für den iframe - ich mutmaße, dass es ein iframe ist - oder verwende folgendes, um Code mit JavaScript ins das leere Fenster (iframe) zu schreiben:
document.open() http://selfhtml.teamone.de/javascript/objekte/document.htm#open
document.write() http://selfhtml.teamone.de/javascript/objekte/document.htm#write
document.close() http://selfhtml.teamone.de/javascript/objekte/document.htm#close
Kontakt.show(13,334, 228, 43,document.body);
Dieses hide und show weist darauf hin, dass du nicht von einem window.oen()-Popup-Fenster sprichst, denn diese kann man nicht verstecken und wieder anzeigen, nur öffenen und schließen.
Was hab ich falsch gemacht. Hab mir auch die Texte bei den Links durchgelesen. demnach müsste ich eigentliche richtig mich nach oben gehangelt haben. Oder zählt das mit window.createPopUp aufgemachte Fenster net als PopUp?
Es poppt auf sozusagen ;), es ist aber wahrscheinlich nicht das, was hier landläufig als Popup-Fenster bezeichnet wird, denn laut meiner Glaskugel redest du zwar von einem Popup-Menü (ein aufspringendes und wieder einklappendes Menü), aber keinem Popup-Fenster.
____________________________
Oben |Rechts |
__________________| |
Links| Mitte | |
__\_|____________|________|
\ \______
|PopUp|
-------
Ist es tatsächlich ein neues Browserfenster oder nur ein *im* linken Frame erscheinender Bereich?
das PopUp wird von Links.html im Links-Frame aufgemacht
Also muss das doch onclick="opener.parent.Mitte.location.href=this.href;return false;" stimmen???
Wenn es sich um ein *internes* Popup-Menü handelt, wäre parent.Mitte.location.href ausreichend. Wenn es sich um internes Popup-Menü in einem *iframe* handelt, dann wäre parent.parent.Mitte.location.href passend. opener kann nur verwendet werden, wenn es sich um ein window.open()-Popupfenster handelt.
Ich glaube, aber, dass du selbst nicht weißt, was das von dir verwendete Script überhaupt macht, deshalb bringt bitte erst das in Erfahrung, ansonsten kann ich nur Tipps geben, welche dir womöglich nicht weiterhelfen werden.
Alle anderen Antworten in diesem Thread auf deine Fragen gingen auch davon aus, dass du von window.open()-Popupfenstern sprichst...
Grüße,
Mathias
Hi!
Ja.. hattest recht.. handelt sich nur um einen DHTML-Effekt... allerdings erscheint der net nur im Fram Links, sondern ragt noch in den Frame Mitte rein.
Mit parent.parent.Mitte.location.href hat es dann funktioniert. Hab auch das mit onmousout geändert.. hatte den Befhel aus der MSDN Hilfe.. da war der als standart angegeben...
Also dann... Viele vielen Danke nochmal... hab mir sehr geholfen..
See ya... und viele Grüße,
André