Jörg Peschke: Ergebnis von eval global verfügbar machen

Beitrag lesen

Hallo,

var test = function() { alert('test'); };

Ähm ja, aber ich kriege den Inhalt von Test nur als String :(

Hintergrund ist der folgende: Ich will den JavaScript-Code eines Dokumentes, welches ich in einem Iframe-eingebunden habe im Parent-Frame einbinden. Sodass ich praktisch alle Funktionen und Variablen im Parent-Frame habe, die ich auch im Iframe zur Verfügung habe.

Also hole ich mit "document.getElementsByTagName("script")" erstmal alle javaScript-Sections.
Wenn ich jetzt diese aber einfach mit einem innerHTML ins Dokument klattsche, gehts glaube ich schief (IE speziell schätzt es nicht, wenn man ihm zur Laufzeit mit innerHTML neuen Code unterjubelt).
Also war meine Idee:

1.) den Script-Code als string exportieren
2.) störende Zeichen (<!-- oder //-->) mit Replace ersetzen
3.) auf den resultierenden String ein eval, noch mit einem try...catch drumrum damits nicht kracht.

Ich gebe zu, ein kühnes UNterfangen ;)