Frames im DOM-Baum manipulieren
ThomasS
- javascript
Hallo,
ich habe eine Seite, die besteht erstmal aus nur einem Frame. Mittels JavaScript erzeuge ich dann dynamisch ein zweites Frame, was auch funktioniert. Über einen Button greife ich auf Funktionen im zweiten Frame zu, das funktioniert auch. Wenn ich aber das Frame entferne und anschließend wieder einschalte, erscheint dieses auch, aber ich kann die Funktion dort nicht mehr aufrufen.
Der Quelltext sieht folgendermaßen aus:
---------- test.htm ---------------------------
<html>
<head>
<title>test</title>
</head>
<frameset rows="*" id="test_id">
<frame src="test1.htm" name="test1">
</frameset>
</html>
-----------------------------------------------
---------- test1.htm ---------------------------
<html>
<head>
<title>test1</title>
<script>
var status=false
function activate() {
if (status) {
status=false;
test2_handle=parent.document.getElementById("test2_id");
test2_handle.parentNode.removeChild(test2_handle);
parent.document.getElementById("test_id").setAttribute("rows","*");
}
else {
status=true;
frame_node=document.createElement("frame");
frame_node.setAttribute("src","test2.htm");
frame_node.setAttribute("name","test2");
frame_node.setAttribute("id","test2_id");
test_handle=parent.document.getElementById("test_id");
test_handle.appendChild(frame_node);
test_handle.setAttribute("rows","*,50%");
}
}
function call() {
parent.test2.problemfunktion();
}
</script>
</head>
<body>
<input type="button" value="(de)activate" onclick="activate()">
<input type="button" value="call" onclick="call()">
</body>
</html>
-----------------------------------------------
---------- test2.htm ---------------------------
<html>
<head>
<title>test2</title>
<script>
function problemfunktion() {
alert("xx");
}
</script>
</head>
<body>
test2
</body>
</html>
-----------------------------------------------
Über Antworten würde ich mich freuen. Danke schonmal.
Gruß ThomasS
Hi,
Wenn ich aber das Frame entferne und anschließend wieder einschalte,
Du meinst wenn Du ihn vernichtest und anschließend einen neuen erzeugst.
erscheint dieses auch, aber ich kann die Funktion dort nicht mehr aufrufen.
Nicht mehr oder nie mehr?
Über Antworten würde ich mich freuen.
Auch über die Antwort, dass ich Dein Vorhaben ziemlich abstrus finde?
Cheatah
Hallo,
danke für die Antwort.
Wenn ich aber das Frame entferne und anschließend wieder einschalte,
Du meinst wenn Du ihn vernichtest und anschließend einen neuen erzeugst.
Ja.
erscheint dieses auch, aber ich kann die Funktion dort nicht mehr aufrufen.
Nicht mehr oder nie mehr?
Nie mehr.
Gruß ThomasS