Langer Titel, kurzer Blogeintrag. Ich bastel gerade daran rum, diverse Javascript-Funktionen innerhalb der HTML-Seite zu benutzen. Das kann ziemlich hässlich werden:
var head = this.getContentDocument().getElementsByTagName("head")[0];
var script = this.getContentDocument().createElement("script");
var showImage = this.getContentDocument().createTextNode("function showImage(id) { "
+ "var image = document.getElementById(id);"
+ "image.style.display = \"inline\"; "
+ "image.parentNode.previousSibling.addEventListener(\"mouseout\",
function() {"
+ "window.setTimeout(fadeImage, 1500, id);"
+ "}, false)"
+ "}");
script.appendChild(showImage);
head.appendChild(script);
Alles doppelt escapen und so. Kein Spass. Hässlich zum Lesen. Lösung:
var head = this.getContentDocument().getElementsByTagName("head")[0];
var script = this.getContentDocument().createElement("script");
script.setAttribute("src", "resource://jslibs/foobar.js");
script.setAttribute("type", "text/javascript");
head.appendChild(script);
Nix spektakuläres, aber innerhalb der Datei „foobar.js“ kann man jetzt ‚ganz normales‘ Javascript schreiben. Ich freu mich über sowas 😉