Hi,
folgendes Problem: Ich bastle gerade an einer Extension für Firefox und will zB ein iFrame in den DOM-Baum einfügen. Hier ein kleines Bsp zu dem Problem welches ich habe.
Wenn ich ein normales HTML-file hab funktionierts auch ohne Probleme:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<script type="text/javascript">
function insertFrame()
{
var iframe = document.createElement("IFRAME");
document.body.appendChild(iframe);
}
</script>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<p>
<a onmouseover="insertFrame();">Insert Frame</a>
</p>
</BODY>
</HTML>
Der DOM-Inspector zeigt mir auch den Knoten mit dem dazu gehörenden Unterknoten(Document) auch an.
Aber bei meiner Extension wird zwar der Eintrag("IFRAME") in die DOM-Struktur eingefügt aber es wird keine richtiges IFRAME erstellt mit dazugehörigen Unterknoten.
Hier die veränderte overlay.xul aus dem helloworld.xpi
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://helloworld/skin/overlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://helloworld/locale/overlay.dtd">
<overlay id="helloworld-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script>
function insertFrame()
{
var iframe = document.createElement("IFRAME");
window.content.document.body.appendChild(iframe);
}
</script>
<menupopup id="menu_ToolsPopup">
<menuitem id="helloworld-hello" label="&helloworld;"
oncommand="insertFrame();"/>
</menupopup>
</overlay>
Wenn die Seite aber abgespeichert wird und neu geladen wird dann zeigt er mir das IFRAME an und in der DOM-Struktur ist das Iframe auch richtig erstellt.
Wie kann ich auch mit meiner Extension das iframe richtig in die DOM-Struktur einfügen ohne zB den Body neu zeichnen zu lassen (zB durch auslesen und einfügen des innerHTML)?
lg Wolfgang