Domino 9 und frühere Versionen > ND8: Entwicklung

Idee gesucht um aus einen MIME-Richtext einen Lotusscript-Befehl abzusetzen

(1/2) > >>

pram:
Hallo zusammen,

ich importiere zur zeit HTML-Dokumente mit Links. Dies mache ich über MIME. D.h. das Body-Item der Dokumente ist vom Typ HTML-Mime.
(Hintergrund: Die Dokumente werden von einem externen Tool erzeugt, wenn ich diese direkt als HTML importiere, werden diese auch so gargestellt wie es ein Browser machen würde)

Ich möchte nun bei Klick auf einen Link eine LotusScript-Funktion aufrufen. Leider kann man bei HTML-Links keine LS/Formelaktionen direkt aufrufen, das einzige was geht ist mittels <a href="javascript:meineAktion('test')"... eine JavaScript-Aktion aufzurufen.

Habe dazu im Netz folgendes gefunden: http://www.lotusguru.com/lotusguru/LGBlog.nsf/d6plinks/KPET-6QBSFX
Diese Funktion sieht bei mir so aus:

--- Code: ---function meineAktion(a) {
document.forms[0].elements[2].value=a
document.forms[0].elements[1].click()
}

--- Ende Code ---
Sie schreibt den übergebenen Parameter in ein Feld und klickt dann auf einen (versteckten) Button, der dann die LotusScript-Aktion ausführt.
Dies würde auch funktionieren WENN ich im Bearbeiten-Modus bin.

Im Lesemodus ist die Zeile "document.forms[0].elements[2].value=a" leider wirkungslos, weil das Feld den Wert nicht annimmt.
Ich scheitere jetzt nur noch daran, dass ich den Parameter irgendwie übergeben kann.

Falls ich keine Lösung finde, müsste ich das HTML-Dokument nach RTF umwandeln und dann mittels DXL oder ähnlichem die entsprechenden Links durch LotusScript-Aktionen ersetzen. (Das will ich nicht, wenn es anders gehen sollte)

Wichtig: Es geht hier um den NOTES-CLIENT: Ajax-Requests der Art http://kiranvenkataraju.weebly.com/1/post/2011/01/calling-lotus-scriptjava-code-from-javascript-in-domino.html scheiden aus.

Gruß
Roland

Peter Klett:
Kannst Du nicht den Wert gleich beim Import setzen, so dass der schon im Dokument steht, bevor Du auf den Link klickst?

EDIT: Oder das Feld zur Laufzeit berechnen (Feld berechnet zur Anzeige, bzw. im QueryOpen per Script setzen)

pram:
Ich habe im HTML-Dokument mehrere Links (das soll eine Art Handbuch werden)
Mit jedem Link kann ich in ein anderes Dokument springen.

ich kann beim Import den "<a href-Link" beliebig manipulieren:
z.B. die Lookup-ID des Zieldokuments einfügen. Das ergebnis wäre dann folgendes:
  <a href="javascript:lsOpenHelp('HilfeThemaZuXXX')"...

Dieser Javascript-Aktion müsste dann folgende LS Funktion aufrufen

--- Code: ---function openHelp(id)
   ...
   set doc = helpView.getFirstDocumentByKey(id)
   call ws.editDocument(false, doc)

end function

--- Ende Code ---
Ich brauche also für die Links im HTML eine Möglichkeit der Parameterübergabe an LotusScript. Wie gesagt, im editMode funktioniert es, dass ich den Parameter in ein Feld schreibe, von wo aus ich ihn wieder auslesen kann.
Ich "hirne" auch noch ein wenig drüber, vielleicht fällt mir was ein...

Gruß
Roland

it898ur:
Hallo,

solchen aktiven Code im Notes-Client mit Browser-Mitteln (JavaScript / HTML) ist kaum hinzubekommen - von der Entwicklung als XPage mal abgesehen.

Da ich an einer bestimmten Stelle eine ähnliche Anforderung (dynamische Verlinkung) hatte, könnte ich aber eventuell einen Denkanstoß zu einer Alternative anbieten.
Ich habe zu jedem Zieldokument ein "Weiterleitungsdokument" im Notes angelegt und in dem Link dieses Weiterleitungsdokument per Notes-URL referenziert. Im PostOpen des Weiterleitungsdokumentes kann man dann wunderbar mit LS arbeiten und das Weiterleitungsdokument auch prima gleich wieder schließen.

Bei langsamen Clients flackert es kurz - bei schnelleren sieht man gar nichts.

Gruß

André

ghostmw:
Moin zusammen,

hätte da vielleicht noch eine Idee, die ich schon mal benutzt habe.

Was auch geht, sind ja Noteslinks in der Form <a href="notes://server/DB-ReplikID/View-ID oder 0/DocID?OpenDocument">LinkText</a>.

Was man hier nur fest verdrahtet, ist dann eigentlich nur der Servername, die Replik-ID sollte sich ja nicht ändern oder ?
Mit der ViewID = 0 kann man direkt per DocUNID Dokument auffinden und öffnen lassen.

Wäre das nicht evtl. was passendes ? Kombiniert vielleicht mit Maskenformeln in der Ansicht oder so ?

Wäre vielleicht noch eine Möglichkeit in der Richtung ...

Ergänzung:
Wenn man eine ViewID angibt, kann man auch einen Suchbegriff eingeben, der in der ersten sortierten Spalte steht, ich habe das aber nur mit Text in der ersten sortieren Spalte benutzt.
Also  z.B. <a href="notes://SERVER/DB-ReplikID/08245152152152254/MeinSuchbegriff?OpenDocument">LinkText</a>.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln