Ich erstelle einen HTML-Editor, ähnlich dem, den ich gerade schreibe, mit der Ausgabe unten. Ich benutze ein iframe und dumping die $ htmlTextBox.val () in den Körper des iframe.
Ich versuche ein Stylesheet im iframe zu erstellen, damit es so gut wie möglich aussieht.
Vielen Dank im Voraus!
%Vor% Während Sie mit einem document.styleSheets eines iframes interagieren können, ist die althergebrachte zuverlässige Methode, das Stylesheet dort zu haben (indem Sie einen iframe-src auf einen leeren Punkt schreiben) Dokument mit dem gewünschten Stylesheet) oder setzen Sie es mit document.write()
ein. Zum Beispiel:
(Dies setzt auch das iframe-Dokument auf den Standards-Modus, vorausgesetzt, dass Sie das wollen.)
Dieser Code wurde unten aus der jHtmlArea-Quelle gezogen. Lustig ist, das Feature war da und ich habe es nicht bemerkt. Ich bin auf diese SO-Frage gestoßen, als ich versuchte herauszufinden, wie man es umsetzen kann. :)
Das ist nicht wirklich "jQuery", aber es funktioniert. Ich denke etwas mit Append ist nicht mit Iframe, so dass sie es Old School gemacht haben. Bobinces Antwort sieht auch gut aus und könnte zuverlässiger sein? Bisher scheint das in Ordnung zu sein.
%Vor%BEARBEITEN : Ich denke, der Grund dafür ist, dass es dieselbeDomäne ist (einschließlich der Erstellung von iFrame in js). Andernfalls verhindern die üblichen Sicherheitsblöcke die Manipulation von iframe dom.
Wenn Sie davon ausgehen, dass Sie sich in derselben Domäne befinden und sich nicht mit der domänenübergreifenden Sicherheit befassen, sollten Sie überprüfen, ob der iFrame geladen ist - NICHT NUR DAS IFRAME, SONDERN DAS DOKUMENT INNERHALB !! (Dies hat mich für eine Weile aufgehängt, während ich versuchte, .load()
) zu verwenden.
Dann greifen Sie mit jquery auf den Inhalt zu, greifen Sie auf den Kopf zu und hängen Sie Ihr Stylesheet an den Kopf an.
%Vor%Tags und Links jquery iframe dynamic stylesheet