JavaScript Inhalt per Java ersetzen

Hilemas

Newbie
Registriert
Aug. 2011
Beiträge
5
Inhalt per Javascript ersetzen

Ich bin derzeit ein CMS für einen guten Freund anzupassen, jedoch verhindert dessen WYSIWYG-Editor PHP-Inhalte per Quellcode einzufügen.

Da Div-Layer jedoch funktionieren, möchte ich den Inhalt eines ID-bestimmten Div-Layers per Javascript oder per PHP ändern. Da ich jedoch in dem Bereich vollkommen neu bin, scheitere ich leider stark daran.

Grundsätzlich müsste ja per Javascript nach dem vollständigen Laden der Seite der Div-Layer ausgelesen werden und sein Inhalt verändert werden.

Dazu habe ich folgendes Testscript geschrieben:
Code:
$(document).ready(function() {
document.getElementById('shortnews').getElementByTagName('div') [1].innerHTML = 'Absatz durch JavaScript geändert';
});
Der HTML-Tag ist ein Div-Layer und die ID ist "shortnews" Leider funktioniert dieser nicht. Was kann ich nun tun?
 
Zuletzt bearbeitet:
  1. Java != JavaScript
  2. Das document vom Editor ist ein anderes als das von der Webseite. Deshalb geht das nicht.
 
Nein, sonst würde es funktionieren. Du brauchst ein Calbackaufruf von dem Editor, wenn er den Inhalt geladen hat und dann holst du dir das Editordokument.
 
Danke für deine raschen Antworten!
Das Problem mit dem WYSIWYG-Editor ist nur, dass er PHP-Code nicht auslesen kann, jedoch Div-Layer anzeigen kann. Nun möchte ich, dass der Inhalt des Div-Layers geändert wird (um z.B. den beabsichtigten PHP-Code einzufügen). Dabei muss man davon ausgehen, dass der Inhalt am Ende in einem Template eingebettet wird

Anderes, allgemeines Szenario:
Eine HTML-Datei besitzt diesen Javascript sowie ein Div Element mit der ID="shortnews" (wie das vorherige Beispiel. Nur, dass es weder einen Editor noch sonstige PHP oder Javascript-Elemente gibt). Ich habe es durchgetestet und es funktioniert leider nicht. Woran kann der Fehler liegen?
 
Wenn du getElementById() aufrufst, dann hat sich alles andere dahinter erübrigt. Eine ID muss einmalig sein im Dokument. Was das dahinter soll, verstehe ich sowieso nicht, insbesondere der Array-Zugriff?

Außerdem hast du einen gewaltigen Denkfehler in der ganzen Sache: Wenn du PHP-Code hinterher in das Dokument einfügst, passiert einfach gar nichts, weil der Code doch bereits auf Server-Seite interpetiert wurde... Du fügst also einfach nur noch text ein, mit dem der Server nichts mehr anfangen kann. Java-Script wird nur auf der Clientseite ausgeführt.

Edit: Oh, sorry. Habe wohl zu schnell überflogen, antworte gleich wieder wenn ich was gegessen habe. :3
 
Zuletzt bearbeitet:
Hilemas,

welchen Editor verwerndet das CMS? HAst du die Callbackfunktion gesetzt? Das dürfte billig sein.
 
Code:
document.getElementById('shortnews').[B][U]getElementByTagName[/U][/B]('div') [1]

es müsste
Code:
getElementsByTagName
heißen!

Aprilliaracer schrieb:
Was das dahinter soll, verstehe ich sowieso nicht, ...

Ich würde mal sagen er will damit in einem DOM-Element "showtnews", das 2te DIV Kind-Element manipulieren.
Besser wäre es wenn dieses DIV eine eindeutige ID verpasst bekommt und man dieses direkt ermitteln würde!
 
Zuletzt bearbeitet:
Okay... Also noch mal:
Er hat dem div ja scheinbar eine ID verpasst, wie er es auch beschrieben hat. Wir sind uns ja alle Einig, das eine ID, wie der Name schon sagt, eindeutig im Dokument ist. Dann reicht folgender Aufruf auch völlig aus:

getElementById('shortnews').innerHTML = "Wertloser krempel";

Mehr benötigt es doch gar nicht...
 
Danke erstmal für eure hilfreichen Antworten! Nachdem ich in einem dunklen Flur stand, sind jetzt spruchwörtlich viele Glühbirnen angegangen :D

@Aprilliaracer: Verdammt! Das hatte ich gar nicht bedacht. Im Übrigen habe ich ein Teil des Scripts aus einem Tutorial kopiert, das anscheinend doch nicht so super war... das bringt mich zwar im Ganzen nicht weiter aber immerhin wieder auf Null, ohne großartig rumzubasteln.

@Wizard: es ist der CKEditor, der bisher ziemlich zuverlässig war. Leider interpretiert dieser kein PHP, das im Editor eingefügt wurde. Wie ich das ändern kann, habe ich bisher leider auch nicht herausgefunden.. :(

@cbmik: nicht direkt. Ich bin wie gesagt noch ein blutiger Anfänger im Javascript Bereich, der sich selber nur zu gerne ins kalte Wasser schmeißt :)
Eigentlich wollte ich den Tag "Div" ansprechen und genau die ID "shortnews" verändern. Durch deine Hilfe habe ich aber kapiert, dass das vollkommen Humbug ist, da ich dann versuche, mit einem Div-Layer im Div-Layer (da die ID ein Div-Layer besitzt) zu operieren. Danke hierfür!!

EDIT: Gibt es eine allgemeine Lösung, Inhalt eines ID-spezifischen Tags zu ändern (nur mal rein Interessenhalber)?

EDIT 2: @Aprilliaracer: YES!! Genau sowas habe ich gesucht! Vielen vielen Dank!!
 
Zuletzt bearbeitet:
Hilemas, das habe ich mir schon gedacht, dass es der CKEditor. Am alten FCKeditor war ich Mitentwickler.
Nochmal zur Wiederholung, der Editor hat ein eigenes Dokument, schau in der Doku nach, wie du es bekommst. Der CKEditor kann **kein** PHP ausführen, wie mein Vorgänger schon richtig sagte, dass ist Serversache, du arbeitest aber auf dem Client. Das wird nur dann funktionieren, wenn du den PHP-Code an den Server schickst, der es ausführt und es dir zurückgibt. Aber diese Arbeitsweise ist einfach nur schlecht.
 
Zurück
Oben