Autor Thema: JavaScript im Web / Keyword Refresh - Hidewhen Refresh  (Gelesen 2288 mal)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Hi Folks,

Domino setzt Keyword Felder, die ein Refresh beim ändern des Keywords auslösen so um, dass ein Standard Javascript mit der Maska geladen wird, mit der Funktion "_doClick". In dem entsprechenden Keyword Feld gibt es dann einen onChange Event, der dieses _doClick aufruft. Die Funktion sieht aus wie folgt:

Code
<script language="JavaScript" type="text/javascript">
<!-- 
document._domino_target = "_self";
function _doClick(v, o, t, h) {
  var form = document._researchActivity;
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
  var target = document._domino_target;
  if (o.href != null) {
    if (o.target != null)
       target = o.target;
  } else {
    if (t != null)
      target = t;
  }
  form.target = target;
  form.__Click.value = v;
  if (h != null)
    form.action += h;
  form.submit();
  return false;
}
// -->

</script>

Die Bedeutung der Parameter:

v ist der Name des Formulars, welches abgeschickt wird (in der Regel "$Refresh")
o ist das Quelldokument (this)
t ist das Target ("_self")
h ist  die Formaction, die beim Keyword Refresh so aufgebaut ist: "#_RefreshKW_name"

"name" in "#_RefreshKW__name" ist der Name des Keyword Feldes, dem ein Underscore "_" vorangestellt wird. Die eigentliche auslösende Funktion ist das "_RefreshKW" was vermutlich "Refresh Keywords" heisst.

Meine Frage dazu: ist diese Funktion irgendwo dokumentiert? In der Notes Hilfe jedenfalls nicht. Gibt es eine äquivalente Funktion auch für Hidewhen Formeln, vielleicht "_RefreshHW" oder so?

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Marinero Atlántico

  • Gast
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #1 am: 06.01.05 - 12:49:31 »
Meine Frage dazu: ist diese Funktion irgendwo dokumentiert? In der Notes Hilfe jedenfalls nicht.
Das ist der code, den die Domino HTTP Engine erzeugt. Mehr Dokumentation als den code selber gibt es für Notes-Anwendungsentwickler meines Wissens nicht. Aber du hast es ja selbst herausgefunden.

Gibt es eine äquivalente Funktion auch für Hidewhen Formeln, vielleicht "_RefreshHW" oder so?
Nein. Meiner Ansicht nach kann es das auch gar nicht geben. Hidden Bereiche in einer Maske werden gar nicht an den Client geschickt.
Sonst müsste es im html quellcode der Seite sowas geben wie:
Code
<field name="xxxx" value="1111" visibility="hidden">
Durch das Hidden feature von Notes versteckte Bereiche werden aber wie gesagt gar nicht als HTML an den Client gesendet.
Eine neu-Berechnung der hide-when-Formeln genötigt deshalb immer einen neuen Roundtrip gegen den Server. Clientseitiges JavaScript reicht dafür aus obigen Gründen nicht aus.

korrigiert mich, wenn ich falsch liege

Axel

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #2 am: 06.01.05 - 13:14:12 »
Nein. Meiner Ansicht nach kann es das auch gar nicht geben. Hidden Bereiche in einer Maske werden gar nicht an den Client geschickt.
Sonst müsste es im html quellcode der Seite sowas geben wie:
Code
<field name="xxxx" value="1111" visibility="hidden">

Meinst du sowas?

<input name="feld1" type="hidden" value="">

Mit der Maskeneingenschaft "generate HTML for all fields" kein Problem.

Durch das Hidden feature von Notes versteckte Bereiche werden aber wie gesagt gar nicht als HTML an den Client gesendet.
Eine neu-Berechnung der hide-when-Formeln genötigt deshalb immer einen neuen Roundtrip gegen den Server. Clientseitiges JavaScript reicht dafür aus obigen Gründen nicht aus.

korrigiert mich, wenn ich falsch liege

Axel
Wie gesagt, Felder kannst du sehr wohl an den Client schicken.

Davon abgesehen wird durch den Eingangs zitierten Code ein "roundtrip" gegen des Server ausgelöst. Bitte beachte, dass die submit() Methode explizit aufgerufen wird. Genau das ist ja auch das, was ich machen will: den Server veranlassen unter geänderten Voraussetzungen das Dokument neu zu laden.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Marinero Atlántico

  • Gast
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #3 am: 06.01.05 - 13:25:00 »

Meinst du sowas?

<input name="feld1" type="hidden" value="">

Mit der Maskeneingenschaft "generate HTML for all fields" kein Problem.
Das kenne ich. Ich meinte, wenn du einen Textbereich oder ein Feld über die Eigenschaftenbox in Notes verbirgst, hast du im von der http-Engine generierten code keine Möglichkeit das dort, wo es per Gestaltung der Maske eigentlich stehen sollte, sichtbar zu machen.

Davon abgesehen wird durch den Eingangs zitierten Code ein "roundtrip" gegen des Server ausgelöst. Bitte beachte, dass die submit() Methode explizit aufgerufen wird. Genau das ist ja auch das, was ich machen will: den Server veranlassen unter geänderten Voraussetzungen das Dokument neu zu laden.
Submit gegen ein WebQuerySave Agent, der den User dann auf das selbe Dokument zurückleitet, sollte funktionieren.

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #4 am: 06.01.05 - 13:57:56 »
Das kenne ich. Ich meinte, wenn du einen Textbereich oder ein Feld über die Eigenschaftenbox in Notes verbirgst, hast du im von der http-Engine generierten code keine Möglichkeit das dort, wo es per Gestaltung der Maske eigentlich stehen sollte, sichtbar zu machen.
Ah, jetzt ja. Das ist soweit klar, stellt aber auch kein Problem dar.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Marinero Atlántico

  • Gast
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #5 am: 06.01.05 - 15:01:25 »
Ah, jetzt ja. Das ist soweit klar, stellt aber auch kein Problem dar.
pls explain (ohne pass-thru html)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Web / Keyword Refresh - Hidewhen Refresh
« Antwort #6 am: 07.01.05 - 10:28:59 »
Oh, ich benutze Pass-Thru HTML.

Es war ursprünglich geplant, eine Reiterstruktur im Web anzubieten, mit Ein- und Ausblendungen. (Deswegen die Frage nach dem Refresh.) Wenn das so geklappt hätte, wie ich mir das vorstelle, dann wäre der Refresh gegen der Server gelaufen, wie das beim Ändern des Keywords passiert und die Hidewhens werden aktualisiert. Wie gesagt, wenn das Ein- und Ausblenden aufgrund eines Keywords passiert, ist das auch kein Problem.

Inzwischen bin ich aber zu dem Schluss gekommen, dass es günstiger ist, für jeden Reiter eine eigene Maske zu machen (sind in meinem Fall nur zwei). Bei Klick auf den entsprechenden Reiter wird der Inhalt des Fensters komplett ausgetauscht.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz