Domino 9 und frühere Versionen > ND6: Entwicklung

PassThru HTML im Notes Client

(1/2) > >>

haeppchen:
Hallo zusammen,

ich möchte folgendes realisieren:
per Button-Click soll HTML-Code in ein RichText-Feld kopiert werden und dort als HTML und nicht als reiner Text angezeigt werden.
Ich habe den Style des RT-Felds als "passThru HTML" definiert und schaffe es auch, den Code dort hinein zu kopieren.
Beim Neu-Öffnen des Dokumentes zeigt mir das Feld allerdings immer nur den reinen Text an und nicht wie gewünscht HTML.

Ich verwende folgenden Programm-Code:


Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument

   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   
   Call uidoc.save

   Dim richStyle As NotesRichTextStyle
   Set richStyle = session.CreateRichTextStyle
   
   Dim richText As New NotesRichTextItem(doc, "HTML")
   richStyle.PassThruHTML = True
   
   Call richText.AppendStyle(richStyle)
   Call richText.AppendText(|<html> <head> </head> <body> <p>HTML</p> </body> </html>|)
   
   Call doc.Save(True, False)
   Call uidoc.Close
   
End Sub


Kann mir jmd. weiterhelfen? Warum wird mein HTML-Code als reiner Text angezeigt, obwohl ich passThru HTML aktiviert habe?
Kann es sein, dass man im Notes Client (das Dok soll nicht im Web betrachtet werden) so etwas gar nicht realisieren kann, also kein HTML innerhalb von RT-Feldern darstellen kann?

Bin für Hilfe dankbar!!

Marinero Atlántico:
Du kannst einmal das hier probieren:

--- Code: ---Call richText.AppendText(|[<p>HTML</p>]|)

--- Ende Code ---
und die Zeile mit appendStyle löschen.

Beachte die eckigen Klammern und im übrigen machen imho die <html><head></head></body></body</html> tags imho keinen Sinn, da das RichTextFeld ja mitten auf der Seite ist, also nur ein html-Seiten Fragment definiert (ganz ähnlich wie bei JSR-168 kompatiblen Portlets, btw).

Wie immer bei solchen Dingen, ist es eine *gute* Idee, dass du dir den erzeugten Html Quellcode anschaust. Ich vermute, dass Notes sowieso [ und | konvertiert. Schau dir das bitte mal genau an und berichte.
Dann würde das alles sowieso nicht funktionieren.

Warum kannst du nicht einfach ein normales Feld statt RichText verwenden?

Gruß Axel



haeppchen:
Hallo Axel,

vielen Danl erstmal für deine schnelle Antwort.
Habe deinen Vorschlag


--- Code: ---Call richText.AppendText(|[<p>HTML</p>]|)

--- Ende Code ---

umgesetzt, aber  mit demselben Ergebnis wie vorher: es wird nur der reine Text angezeigt.
Es muss doch irgendwie möglich sein, HTML innerhalb von Lotus Notes Feldern angezeigt zu bekommen! Wenn ich HTML-Code in eine Form kopiere und dann passThru HTML aktiviere, bekomme ich ja schließlich auch HTML angezeigt und nicht mehr den reinen Code??




--- Zitat ---Warum kannst du nicht einfach ein normales Feld statt RichText verwenden?

--- Ende Zitat ---

Hier noch eine Verständnisfrage: Muss ich nicht RT-Felder nehmen, um dort HTML angezeigt zu bekommen?
Denn bei RT-Feldern kann man doch gerade den Style auf passThru HTML setzen?
Ein "normales" Feld wäre natärlich viel besser, weil einfacher zu handeln, aber wie sage ich diesem Feld, dass es HTML anzeigen soll und nicht den reinen HTML-Code??

Marinero Atlántico:
NotesRichText ist ein eigenes Thema in Notes.
Benutze es nur wo wirklich nötig.

HTML ist Text. Also kannst du ein Textfeld verwenden.
Du kannst diesen Bereich dann im Designer als PassThru html markieren.
Warum also dafür nicht einfach ein Textfeld verwenden?
Oder sogar Computed Text.

Du kannst dir im Browser den Source Code anzeigen lassen.
In Mozilla/Firefox und IE: Mit rechter Maustaste auf Seite klicken und dann Eintrag Seitenquelltext anzeigen oder Quelltext anzeigen.
Suche bitte die entsprechende Stelle und poste sie hier. 

Gruß Axel

haeppchen:
Habe jetzt ein Text-Feld benutzt und HTML-Code per Button-Click dort hineinkopiert, aber es wird immer noch nur der reine Text angezeigt.
Ich habe im Designer beim entsprechenden Feld als passThru HTML aktiviert (wenn das für einzelne Felder überhaupt möglich ist, ich kann das Feld lediglich markieren und im Menü "passThru HTML" wählen, aber beim nächsten Klick auf das Feld ist diese Option wieder deaktiviert).
Das Kopieren des HTML-Code klappt weder in der Form

   |[<p>HTML</p>]|   noch

   "[<p>HTML</p>]"  noch

   "<p>HTML</p>"

es wird halt weiterhin der String "[<p>HTML</p>]" (bzw. "<p>HTML</p>") im Text-Feld angezeigt 

Vielleicht habe ich mich bisher auch nicht deutlich genug ausgedrückt, aber das Dokument soll im Client und nicht im Browser-Client das HTML anzeigen.
Beim Reinkopieren des HTML-Codes in das Feld sollte das HTML auch sofort angezeigt werden.
So langsam zweifele ich daran, ob Notes dazu überhaupt in der Lage ist...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln