Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Gravedigger am 13.06.03 - 15:14:48

Titel: Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 13.06.03 - 15:14:48
Hallo,

kann man eine Alert-Box(JavaScript) auch anzeigen lassen, wenn man auf einen Button(per @Command) klickt?
Die Alert-Box wird, wenn nötig, von einem Agenten(LotusScript) ausgegeben.

thx
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: ata am 13.06.03 - 16:03:54
... kannst du das nochmal erklären - JavaScript - @Formel - LS ???

... willst du das im Web oder im Client???

ata
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 16.06.03 - 08:12:01
Das Ganze soll im Web funktionieren, irgendwann mal.  ;)

Ich habe einen Agenten geschrieben, in LotusScript, der per "Print '<Script...>'" den JavaScript-Teil ausgeben soll. Der Agent wird mit einem Klick auf einen Button gestartet, per "@Command ([ToolsRunMacro]...)".

Nur leider wird das JavaScript-Fenster nicht angezeigt. Liegt es vielleicht daran, dass der Agent von einem Button aus gestartet wird?
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: ata am 16.06.03 - 10:09:56
... du kannst mit einem Button Agenten starten, daran dürfte es nicht liegen...

... die Maskeneigenschaft "Generate HTML for all fields" muß aktiviert sein...

... Mir ist allerdings nicht klar, ob dein Print die richtigen Anweisungen ins Dokument schreibt...

ata
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 16.06.03 - 10:17:16
Print "<SCRIPT LANGUAGE=JavaScript>"
Print "alert(""Einige User sind noch für diese Anwendung berechtigt. Ein Löschen ist nicht möglich."")"
Print "history.back(1)"         
Print "</SCRIPT>"


Es funktioniert alles, bis auf das JavaScript-Fenster.  :(

Oben steht mein Code, mit dem ich das Fensterlein aufrufe.
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: ata am 16.06.03 - 10:25:50
... was funktioniert nicht, die Meldung oder history.back

ata
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Axel_Janssen am 16.06.03 - 10:30:36
Versuche das mal so zu schreiben:

Print "<html>"
Print "Ich bin diggers html-Seite, in dem das JavaScript alert eingebunden ist"
Print "<SCRIPT LANGUAGE=JavaScript>"
Print "alert(""Einige User sind noch für diese Anwendung berechtigt. Ein Löschen ist nicht möglich."")"
Print "history.back(1)"        
Print "</SCRIPT>"
Print "</html>"

Schau auf die Serverkonsole oder schlechter die log.nsf des Servers, ob der Agent irgendwelche Fehlermeldungen rausgibt.

Du weisst das JavaScript nur client-seitig funktioniert?
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 16.06.03 - 10:33:26
... was funktioniert nicht, die Meldung oder history.back

Die Meldung.
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 16.06.03 - 10:37:13
Dank euch. Es funktioniert.    :D
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: ata am 16.06.03 - 11:17:32
... lass uns/mich nicht dumm sterben - was war es - fehlerndes Semikolon oder waren die Anführungsstriche zu viel - oder beides???

ata
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Gravedigger am 16.06.03 - 11:25:43
Print "<html>"
Print "Ich bin diggers html-Seite, in dem das JavaScript alert eingebunden ist"
Print "<SCRIPT LANGUAGE=JavaScript>"
Print "alert(""Einige User sind noch für diese Anwendung berechtigt. Ein Löschen ist nicht möglich."")"
Print "history.back(1)"        
Print "</SCRIPT>"
Print "</html>"

so geht's
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: harkpabst_meliantrop am 17.06.03 - 11:34:41
Print "<html>"
Print "Ich bin diggers html-Seite, in dem das JavaScript alert eingebunden ist"
Print "<SCRIPT LANGUAGE=JavaScript>"
Print "alert(""Einige User sind noch für diese Anwendung berechtigt. Ein Löschen ist nicht möglich."")"
Print "history.back(1)"        
Print "</script>"
Print "</html>"
Wenn man sich den Quelltext dieser Seite anschaut (dazu muss man das history.go(-1)) natürlich vorübergehend auskommentieren, stellt man fest, dass das noch nicht ganz sauber ist (doppelte HTML-Tags usw.)

Vorher noch diese beiden Zeilen einfügen, dann ist es perfekt:

Print {Content-Type:text/plain}
Print {Content-Type:text/html}
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Axel_Janssen am 17.06.03 - 11:52:50
@pabst: da muss ich nachharken.

Mit print { } kann man http-header Felder setzen in Notes, right?
Wusste ich gar nicht.
Werde ich mit dem "Live Http Headers"- plugin von Mozilla testen, sobald ich irgendwann den Notes-Server hochfahre.
(ich liebe Tools, die mir an sich unsichtbare Sachen sichtbar machen)
thanx Axel  ;D
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: harkpabst_meliantrop am 17.06.03 - 13:44:32
@pabst: da muss ich nachharken.
AJs bekannt subtiler Humor schlägt voll durch.
Zitat
Mit print { } kann man http-header Felder setzen in Notes, right?
Wusste ich gar nicht.
Sehr praktisch z.B., wenn man (aus welchen Gründen auch immer) per Agent einen Dateianhang servieren will oder on-the-Fly Excel-Sheets für das Excel-ActiveX-Controll erzeugen will.
Zitat
Werde ich mit dem "Live Http Headers"- plugin von Mozilla testen, sobald ich irgendwann den Notes-Server hochfahre.
(ich liebe Tools, die mir an sich unsichtbare Sachen sichtbar machen)
Oh, hab ich ja noch gar nicht. Ich benutzer bisher immer das Miart HTTP Header Info Tool (http://www.miart.co.uk). Aber direkt in Mozilla wär das ja noch praktischer.

Ich bin übrigens trotzdem zu doof, einen Agenten zu schreiben, der einfach nur ein bißchen JavaScript ausgibt (einfach eine Alertbox würde mir schon reichen) mit Inhalten, die vorher per LS geholt wurden und die aufrufende Seite einfach in Ruhe lässt. Scheiß LotusScript. @Formeln sind doch das beste ... :P



Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Axel_Janssen am 17.06.03 - 14:18:53
Zitat
Zitat
Werde ich mit dem "Live Http Headers"- plugin von Mozilla testen, sobald ich irgendwann den Notes-Server hochfahre.
(ich liebe Tools, die mir an sich unsichtbare Sachen sichtbar machen)
Oh, hab ich ja noch gar nicht. Ich benutzer bisher immer das Miart HTTP Header Info Tool (http://www.miart.co.uk). Aber direkt in Mozilla wär das ja noch praktischer.
http://livehttpheaders.mozdev.org/

Zitat
Ich bin übrigens trotzdem zu doof, einen Agenten zu schreiben, der einfach nur ein bißchen JavaScript ausgibt (einfach eine Alertbox würde mir schon reichen) mit Inhalten, die vorher per LS geholt wurden und die aufrufende Seite einfach in Ruhe lässt.
Das verstehe ich nicht

 




Titel: Re:Agent, JavaScript & ein Button
Beitrag von: harkpabst_meliantrop am 17.06.03 - 14:31:59
Das verstehe ich nicht
Ich meine folgendes: Ein per ?openAgent gestarteter Agent gibt normalerweise sein hässliches "Agent done" aus. Wenn man das nicht haben will - und wer will das schon - kann man entweder im Print-Befehl in eckigen Klammern einen URL ausgeben, zu dem gesprungen werden soll. Das geht aber nur, wenn das der einzige Print-Befehl ist.

Oder man kann eigenes HTML ausgeben, dass dann natürlich auch JavaScript enthalten darf. Außer mit krummen Tricks wie einem Meta Refresh oder history.back() kann man dann aber keine direkte Umleitung auf die ursprüngliche Seite mehr einbauen.

Wenn ich jetzt in dem Agenten per LS Informationen einsammeln will, die in einer Alert-Box angezeigt werden sollen, (ich möchte an der bestehenden LS-Klasse, die das ganze in Notes erledigt möglichst wenig ändern) dann könnte ich das natürlich wie oben angegeben machen. Allerdings wird eben doch kurzfristig eine andere Seite angezeigt und das history.back() wird erst ausgeführt, nachdem die Alertbox verschwunden ist (egal in welcher Reihenfolge man das hintippt).

Deshalb frage ich mich, ob man einem Agenten das Manipulieren des aktuellen URL nicht ganz abgewöhnen kann, damit er z.B. nur einfach JavaScript mit dem vorher im Browser angezeigten Dokument (bzw. der Seite) als document ausgibt.

Halte ich allerdings für nicht machbar. Darum werde ich statt der Notes-Messagebox im Web wohl doch ein neues Fenster öffnen, bei dem ich dann per WQO-Agent tun und lassen kann, was ich will.

Jetzt verständlich?





Titel: Re:Agent, JavaScript & ein Button
Beitrag von: Axel_Janssen am 17.06.03 - 15:24:18
so richtig verstehe ich das leider immer noch nicht. Kann damit zusammenhängen, dass ich 3 Sachen gleichzeitig mache.  :-\

Jedenfalls das hier ist interessant:



http ist ja normal ein request-response Protokoll. Es gibt da aber einen Trick, wo Informationen zum Server gesendet werden. Und die Seite stehenbleibt.
Zitat
By setting HTTP response code to 204, it is possible to submit data to server without changing current page in display.
Die haben das auf der Amazon-Seite gefunden, nicht auf irgendeiner finsteren Hackerseite.
Ich habs nicht ausprobiert, aber das sieht wie eine genaue Beschreibung aus.
http://www.sonic.net/~conover/archives/000022.html
Titel: Re:Agent, JavaScript & ein Button
Beitrag von: harkpabst_meliantrop am 17.06.03 - 15:43:56
Zitat
By setting HTTP response code to 204, it is possible to submit data to server without changing current page in display.
Die haben das auf der Amazon-Seite gefunden, nicht auf irgendeiner finsteren Hackerseite.
Ich habs nicht ausprobiert, aber das sieht wie eine genaue Beschreibung aus.
http://www.sonic.net/~conover/archives/000022.html
Ist Amazon.com nicht eine finstere Hackerseite?  ::)

Wie auch immer, hilft leider nicht. Denn wenn ich endlich JavaScript ausgeben kann, ist der olle LS-Agent ja schon längst losgerannt und hat mir die neue Seite bereits aufgebaut.

Ist auch nicht schlimm, ich nehme jetzt ein Popup-Fenster.