Neue Funktionen deklarieren

Hey,
ich arbeite zurzeit an einem HTML-Editor der in der Website ist.

Soweit der Sand: http://crunk.bplaced.net/editit/

CSS und HTML editieren geht ziemlich gut, jedoch kann ich im JavaScript-Editfeld keine neuen Funktionen hinzufügen.
Wenn ich im HTML folgendes schreibe

<p onclick="this.style.backgroundColor = 'blue'">Hallo</p>

funktioniert es.

Wenn ich allerdings im HTML folgendes schreibe

<p id="absatz" onclick="funktion1()">Hallo</p>

und im JavaScript folgendes

function funktion1() {
document.getElementById("absatz").style.backgroundColor = "blue";
}

Gibt Chrome im „Element-Untersuchen“-Modus folgenden Fehler aus: Uncaught ReferenceError: funktion1 is not defined
Und auf der Seite passiert nichts.

Ich würde nun gern wissen wieso?

Danke schonmal und ein schönes Wochenende

Mal ins Blaue geraten: Vermutlich musst du den Code durch eval laufen lassen, damit der JavaScript-Interpreter ihn bemerkt.

Du musst gar nicht mit einem solchen Funktionsaufruf arbeiten, das geht auch viel flexibler. Beispiel:

[html]

Hallo

[/html]

function funktion1( obj ) { obj.style.backgroundColor = "blue"; }

Tipp: das was Du erreichen willst, geht auch mit CSS (Pseudoklasse focus/active). JavaScript ist dafür imho nicht notwendig.

Nichts gegen den Hinweis, aber ich denke, die JavaScript-Funktion war nur ein Beispiel. Es geht Skater sicherlich schon darum, „dynamisch“ eigenen JS-Code definieren und ausführen zu können. Das soll wohl so was in der Richtung von jsFiddle werden.

Eben, ich will einfach nur auf der Seite http://crunk.bplaced.net/editit/ die Seite selber editieren. So wie als wenn ich die HTML Datei mitm Editor öffne und sie verändere. Blos, dass ich das lästige Strg+S und Browser neu laden vermeiden möchte.

Ich hoffe jetzt ist klarer geworden was genau ich machen will :stuck_out_tongue:

Edit: Außerdem is focus/active was ganz anderes. Aber es war eh nur ein Beispiel.

Edit2: Mit (nur ein Beispiel zum Tipp von mermshaus)

eval("x=10;y=20;document.write(x*y)")

gehts leider auch nicht.

Liegt es vielleicht daran, dass ich keine Funktionen deklarieren kann weil ich das Tag im Body-Bereich ausgebe?

Ich hoffe jetzt ist klarer geworden was genau ich machen will :stuck_out_tongue:

Mir ehrlich gesagt nicht. Das Vorhaben – wenn ich es richtig verstehe – hat allein schon logische Grenzen. Was ist, wenn du das Eingabeelement, in das du deine Änderungen tippst, durch eine Änderung entfernst? Game over.

Außerdem wird es schwierig mit der Speicherung der Änderungen.