Archivlink: javarea.de Forum > JavaScript > seite in iFrame prüfen....
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > seite in iFrame prüfen....
Pages: [1]
2
3
... nächste »
... Letzte »
| geschrieben von BSoD am 04.05.2006 - 18:51 |
hi
ich möchte prüfen ob in einem iFrame die seite bla.htm geladen ist. wenn ja, dann soll eine grafik, ausserhalb des iframes versteckt werden.
da ich mich erst seit ein paar tagen mit JS beschäftige, wär ich für eine ausführliche erklärung sehr dankbar 
|
| geschrieben von Micha am 04.05.2006 - 20:31 |
Hallo,
| Zitat | | | Original geschrieben von BSoD am 04.05.2006 - 18:51
für eine ausführliche erklärung sehr dankbar |
ich nehme Dich beim Wort. Ich nenne Dir die Zutaten und Du backst den Kuchen, okay?
In der Seite, in der das iFrame liegt (Elternfenster), willst Du etwas prüfen und auch etwas ändern; daher kommt das JS in dieses Elternfenster.
Dies sei unser Ausgangsbeispiel:
| HTML-Quelltext | 1:
| <iframe id="Frame" src="seite.htm" width="400" height="300"></iframe> |
Zunächst verschaffst Du Dir zugriff auf das Element mit getElementById() und der ID des Frames. Speicher das Frame-Objekt am besten in einer Variablen ab. Diese Variable sollte keine Schlüsselwörter enthalten und auch keine Sonderzeichen (und Umlaute).
Mit einem Vergleichsoperator - hier günstigerweise IF kannst Du nun Prüfen, ob das SRC-Attribut des iFrames den Wert Deiner gesuchten Datei hat. Dabei greifst Du auf die Eigenschaft Deines Frameobjektes (also Deiner Variablen) mit einem Punkt und src --> .src auf die Source zu.
Ist der Wert true; also wahr und somit im iFrame die Seite, bei der Du was ausblenden wolltest, dann ändere das Element, welches Du ausblenden wolltest.
Dau greifst Du wiederum auf das Element mit getElementById (oder auch TagName, Name) und setzt deren Styleeigenschaft auf unsichtbar (display).
Damit es bei einem anderen Inhalt Deines Frames wieder da - also sichtbar - ist, solltest Du noch einen ELSE-Zweig machen, in dem Du das Element wieder einblendest.
Schöne Grüße Micha |
| geschrieben von BSoD am 04.05.2006 - 21:40 |
wenn ich zeit hab werd ich mal versuchen dass zu verstehen , dann den kuchen versuchen zu backen ^^ und mich freuen wenns geht.
danke schon mal für die hilfe
:::edit::::
entweder liegts an der zeit oder daran dass ich noch nicht lang genug mit JS zu tun hab. auf jeden fall behirn ich mal nur die hälfte ^^
könnt mir wer bitte ein komplettes beispiel auf die schnelle zusammenstellen ?  |
| geschrieben von René am 05.05.2006 - 07:49 |
... ich hätte es anders gemacht.
<iframe name="iframe_name" src="seite.htm" width="400" height="300"></iframe>
if (document.iframe_name.location.href == '?????')
----
Meines erachtens auch richtiger da er ja wissen will welche Seite gerade im I-Frame geladen ist und nicht welche Seite im src="..." steht, oder hab ich jetzt Bahnhof verstanden !? |
| geschrieben von Micha am 05.05.2006 - 07:56 |
Moin,
ja, das geht auch, wobei es nicht kürzer* ist als
| HTML-Quelltext | 1:
| if (docuemnt.getElementById("FarmeID").href == "Xyz.html") |
Ob es nun HREF oder SRC ist, kann ich auch nicht mit 100%iger Sicherheit sagen; Dein Argument "...im I-Frame geladen ist und nicht welche Seite im..." klingt zunächst einleutend.
Liebe Grüße Micha
(*) Ich weiß, das ich ihm eine Variable empfohlen habe; damit würde es eine Zeile länger werden. |
| geschrieben von BSoD am 05.05.2006 - 16:58 |
ich hab mir mal was zusammengesucht und gebastelt. jetzt muss nur irgentwie die finktion zum laufen gebracht werden, vorausgesetzt das funzt so ^^
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
| <script language="javascript">
function Verstecken () {
if (docuemnt.getElementById("Framezwei").src == "blank2.htm") {
document.getElementById('backbild').style.visibility="hidden";
}
else {
document.getElementById('backbild').style.visibility="visible";
}
}
</script> |
| HTML-Quelltext | 1:
2:
| <iframe name="Screen1" id="Framezwei" src="blank.htm" width="435" height="311" frameborder="0" scrolling="no">
</iframe> |
| HTML-Quelltext | 1:
2:
3:
| <DIV STYLE="margin-left:323">
<img id="backbild" src="icons\back.bmp" onClick="javascript:window.parent.frames['Screen1'].location.href='//......../blank2.htm'">
</div> |
|
| geschrieben von René am 05.05.2006 - 17:25 |
Hallo BSoD,
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
| <script language="javascript">
<!--
function Verstecken(seite)
{
with (document)
{
getElementById('backbild').style.visibility = (seite == 'blank2.htm') ? 'hidden' : 'visible';
Screen1.location.href='./' + seite;
}
}
//-->
</script>
<iframe name="Screen1" src="blank.htm" width="435" height="311" frameborder="0" scrolling="no"></iframe>
<div style="margin-left: 323px;">
<img id="backbild" src="icons/back.bmp" onclick="Verstecken('blank2.htm');">
</div> |
----
@Micha,
src geht nicht das bleibt immer gleich egal welche Seite im IFrame geladen ist. |
| geschrieben von Micha am 05.05.2006 - 17:39 |
Hallo,
alles klar, Danke für den Hinweis ;)
Liebe Grüße aus dem 30km von Dir entfernten, sonnigen Neubrandenburg
Micha |
| geschrieben von BSoD am 05.05.2006 - 18:20 |
thx rené
es funzt soweit, dass das bild verschwindet und blank2.htm im frame geladen wird. aber sie sollte wieder auftauchen, sobald wieder ne andere seite drin ist, nur tut sie das nicht ^^ |
| geschrieben von René am 05.05.2006 - 19:02 |
Hallo BSoD,
du mußt jede Seite mit den onclick="Verstecken('.....');" aurufen!
----
@Micha,
hier scheint auch die Sonne, aber meines erachtens sind es 35 km.  |
| geschrieben von BSoD am 05.05.2006 - 19:16 |
| aaaha. und was wenn die links in nem anderen iframe sind ? ^^ |
| geschrieben von René am 05.05.2006 - 19:29 |
Hallo BSoD,
dann mußt du in Versteckt('....', '....'); die Seite und den IFrame-Namen übergeben und den Code der Funktion anpassen. |
| geschrieben von BSoD am 05.05.2006 - 19:56 |
aha ... und wie ? ^^
wie gesagt, noch versteh ich (fast) nur bahnhof  |
| geschrieben von René am 05.05.2006 - 20:13 |
Hallo BSoD,
| HTML-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
| <script language="javascript">
<!--
function Verstecken(frm, seite)
{
with (document)
{
getElementById('backbild').style.visibility = (seite == 'blank2.htm') ? 'hidden' : 'visible';
frames[frm].location.href = './' + seite;
}
}
//-->
</script>
<iframe name="Screen1" src="blank.htm" width="435" height="311" frameborder="0" scrolling="no"></iframe>
<div style="margin-left: 323px;">
<img id="backbild" src="icons/back.bmp" onclick="Verstecken('Screen1', 'blank2.htm');">
</div> |
|
| geschrieben von Micha am 05.05.2006 - 20:26 |
Hi,
| Zitat | | | Original geschrieben von René am 05.05.2006 - 19:02
@Micha,
hier scheint auch die Sonne, aber meines erachtens sind es 35 km.  |
Das mag sein, Du hast mir auch noch nicht gesagt, wo Du wohnst 
Schöne Grüße
Micha
|
|