Die Funktion des iframe-Elements besteht darin, ein Dokument in ein Dokument einzubetten und einen schwebenden Rahmen zu erstellen. Viele Menschen verstehen nicht ganz, wie iFrame gesteuert wird, und sie sind im Grunde immer noch in einem vagen Verständniszustand.
Zwei Hinweise zu Iframes: ifr ist der ID- und NAME-Wert eines vorhandenen Iframes:
Das Folgende ist ein zitiertes Fragment:
document.getElementById(“ifr”);
window.frames[„ifr“];
zweite
Methode durchlaufen, da sie ein vollständiges DOM-Modell benötigt (ich weiß nicht, ob dies korrekt ist).
Ich möchte nur die SRC- oder Rand-, Bildlauf- und andere Attribute des Iframes ändern (die nicht dasselbe Konzept wie Eigenschaften haben und nicht in Tags geschrieben werden können, z. B. scrollHeight, innerHTML usw.), müssen Sie die erste Methode verwenden.
Wenn Sie die Seite des Iframes (nicht den Iframe selbst) abrufen möchten, müssen Sie die zweite Methode verwenden, da diese ein vollständiges DOM-Modell erhält. Wenn Sie beispielsweise den Inhalt des document.body abrufen möchten iframe, Sie können nur die zweite Methode verwenden.
Wenn die iframe-Seite nicht vollständig geladen ist, tritt beim Aufrufen des DOM-Modells ein schwerwiegender Fehler auf.Daher
müssen Sie einen fehlertoleranten Modus vorbereiten
, einer ist aa.htm und der andere ist bb.htm
aa .htm-
Code: Das Folgende ist ein Zitatfragment:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<Kopf>
<title>Unbenannte Seite</title>
<style type="text/css">
<!--
Körper{
Rand:0px;
}
->
</style>
</head>
<Körper>
<iframe id="ifr" name="ifr" width="100%" height="500" src="bb.htm"></iframe>
</body>
</html>
<script language="javascript" type="text/javascript">
var aa_value="Ich bin eine Variante im oberen Fenster!";
var ifr_id=document.getElementById("ifr");
var ifr_window=window.frames["ifr"];
alarm("Alarm vom oberen Fenster: Iframe-Variante kann nicht von ifr_id abgerufen werden, es wird zurückgegeben:" + ifr_id.bb_var);
alarm("Alarm vom oberen Fenster: Das DOM-Modell des Iframes kann nicht von ifr_id abgerufen werden, es wird zurückgegeben:" + ifr_id.window);
Alert("Alert vom oberen Fenster: Quelle von ID abrufen:" + ifr_id.src);
Alert("Alarm vom oberen Fenster: Href vom Fenster abrufen:" + ifr_window.document.location.href);
//Da bb.htm möglicherweise noch nicht geladen ist, kann es beim Herunterladen zu einem Fehler kommen.
//Funktion ifr_window.bb() im Iframe aufrufen;
//Variablen innerhalb des Iframes aufrufen
Alert("Alarm vom oberen Fenster: " + ifr_window.bb_var);
//
Alert("Alarm vom oberen Fenster:" + ifr_window.document.body.innerHTML);
Funktion aa(msg){
alarm("Ich alarmiere über das obere Fenster und habe eine Nachricht erhalten:n" + msg);
}
</script>
bb.htm
Code: Das Folgende ist ein zitierter Ausschnitt:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<Kopf>
<title>Unterrahmen</title>
<style type="text/css">
<!--
html,body{
Rand:0px;
Breite:90%;
}
->
</style>
</head>
<Körper>
Ich bin ein Subframe!
<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...<br />
...
</body>
</html>
<script language="javascript" type="text/javascript">
var bb_var="Ich bin eine Variable in ifr";
functionbb(){
Alert("Alert von Iframe: Ich bin Frame-IFR-Funktion")
}
//Variablen der übergeordneten Seite abrufen
Alert("Alert von iframe parent.ifr_id::" + parent.ifr_id);
Alert("Alert von iframe parent.aa_value: " + parent.aa_value);
//Ändern Sie die Höhe des Iframes über die ifr_id der übergeordneten Seite
warning("Alert von iframe: ifrs clientHeight:" +document.body.clientHeight);
parent.ifr_id.height=document.body.clientHeight;
alarm("Alarm von iframe: ifrs scrollHeight: " + document.body.scrollHeight);
//Rufen Sie die Funktion des übergeordneten Formulars auf:
parent.aa("Ich werde eine Funktion aufrufen, die im oberen Fenster liegt");
//Ändern Sie den Titel des übergeordneten Formulars:
Alert("Alarm vom Iframe: Ich werde den Titel des oberen Fensters ändern");
top.document.title="Der Titelwert wurde geändert";
//Der Rahmen und das Scrollen wurden durch die ifr_id des übergeordneten Formulars geändert
Alert("Alert von iframe: Ich werde meinen Rahmen und das Scrollen ändern:");
top.ifr_id.border=0;
top.ifr_id.scrolling="nein";
</script>