Inlineframes mit Firefox / target funktioniert nicht

Authorist

Grünschnabel
Hallo zusammen,

ich bin neu hier deshalb erstmal ein Prost in die Runde :)

Ich habe mir mit iWeb eine Website gebastelt. iWeb deshalb, weils so easy ist, erstmal zumindest, denn ich habe mich vor die Aufgabe gestellt, auf der linken Seite einer Seite ein Menü mit einfachen Links zu positionieren, die dann die verlinkte Seite in einem Inlineframe rechts auf der Seite anzeigen sollen.

Normalerweise geht das nicht in iWeb, weil man den Zielframe nicht bestimmen kann. Hierzu muss man in die HTML Datei eingreifen, und die jeweilige <a href ...> Zeile mit einem target-Parameter ergänzen.

Das Resultat ist, dass Safari das alles korrekt anzeigt, Firefox sich jedoch weigert den Inhalt im Inlineframe anzuzeigen und stattdessen lieber eine neue Seite aufmacht. Das ist natürlich nicht gerade das was ich wollte, denn Links zeigen alle auf Seiten die sich innerhalb meiner Site befinden.

Was kann ich hier machen? Was läuft falsch?

A.
 
Hi.
Das Resultat ist, dass Safari das alles korrekt anzeigt, Firefox sich jedoch weigert den Inhalt im Inlineframe anzuzeigen und stattdessen lieber eine neue Seite aufmacht.

Was kann ich hier machen? Was läuft falsch?
Deiner Umschreibung zufolge besitzt das <iframe>-Element nicht das erforderliche name-Attribut mit dem Fensternamen analog zum target-Attribut der Verweise, sondern lediglich das id-Attribut. Dies erklärt zumindest das Verhalten in den beiden genannten Browsern.

Siehe hierzu das Kapitel Verweise zu eingebetteten Frames.

mfg Maik
 
Liegt die Lösung hier nicht klar auf der Hand?

Indem es im <iframe>-Element eingesetzt wird. Dann funktioniert das target-Attribut auch im FF und den übrigen Browsern, die den ID-Bezeichner im id-Attribut nicht als "Fensternamen" des (i)Frames erkennen, und daher das Verweisziel in einem neuen Fenster / Tab öffnen.

mfg Maik
 
Klar liegt die Lösung so gesehen auf der Hand, ich möchte aber versuchen daran vorbeizukommen, in irgendeiner HTML Datei die IWeb erzeugt, Hand anlegen zu müssen. Das was ich zuvor beschrieben habe, dass ich das target-Attribut in den Links von Hand gesetzt habe, war ein Workaround.

Das Ergebnis soll am Ende so aussehen, dass ich in iWeb mit zwei Frames arbeite, der Menüframe links beinhaltet das Menü, der dort als HTML-Code eingefügt wird, und rechts der dynamische Content. Entsprechend habe ich folgendes im Header des Menüframes eingesetzt:

<script type="text/javascript">
document.getElementById("widget2-frame").name="video";
</script>

Aber es zeigt keine Wirkung. Ich vermute, dass zum Zeitpunkt wo der Code ausgeführt wird, das Element "widget2-frame" noch nicht existiert, kann das sein? Oder mache ich etwas anderes falsch?

Danke für den Support"
A.
 
Zuletzt bearbeitet:
Ich kenne zwar "iWeb" nicht, aber wenn es dem iFrame nicht standardmäßig sein name-Attribut mit auf dem Weg gibt, bzw. dies nicht zur Auswahl bereitstellt, kann die Anwendung in meinen Augen nicht sonderlich viel taugen.

Und wo ist hier das Problem, das erforderliche Attribut von Hand in den Quellcode einzutragen?

Dein Script wird so nicht funktionieren, denn die getElementById()-Methode besitzt überhaupt keine name-Eigenschaft.

Da bist du mit dem manuellen Eintragen des name-Attributs besser bedient.

mfg Maik
 
iWeb taugt auch nichts, es nur einfach. Bis zu einem gewissen Grad, denn es zeigt mehr Merkwürdigkeiten als gute Ergebnisse.

Ich bin gerne für Empfehlungen dankbar, was Software angeht. Gibt es da was zwischen popelig und zu anspruchsvoll? Wenn ich mir Dreamweaver ansehen, tun sich erstmal viele Fragezeichen auf, davon ab wüsste ich dort auch nicht wie ich das mal eben umgesetzt bekomme. iWeb beinhaltet XML/CSS auf sehr simple Art und Weise, das ist der große Vorteil dort.

A.
 
Ooh, wie ich sagte, kenne ich "iWeb" nicht, und wußte daher nicht, dass es eine Mac-Anwendung ist :-(

mfg Maik
 

Neue Beiträge

Zurück