• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Neue Funktionen deklarieren

Skater

Mitglied
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
Code:
<p onclick="this.style.backgroundColor = 'blue'">Hallo</p>
funktioniert es.

Wenn ich allerdings im HTML folgendes schreibe
Code:
<p id="absatz" onclick="funktion1()">Hallo</p>

und im JavaScript folgendes
Code:
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
 
Werbung:
Du musst gar nicht mit einem solchen Funktionsaufruf arbeiten, das geht auch viel flexibler. Beispiel:

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

Code:
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.
 
Werbung:
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 :p

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)
Code:
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 <script> Tag im Body-Bereich ausgebe?
 
Zuletzt bearbeitet:
Ich hoffe jetzt ist klarer geworden was genau ich machen will :p

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.
 
Werbung:
Zurück
Oben