{"id":114,"date":"2011-07-27T03:51:56","date_gmt":"2011-07-27T01:51:56","guid":{"rendered":"http:\/\/hasselba.ch\/blog\/?p=114"},"modified":"2011-07-27T03:53:29","modified_gmt":"2011-07-27T01:53:29","slug":"einfacher-datenaustausch-zwischen-ssjs-js","status":"publish","type":"post","link":"https:\/\/hasselba.ch\/blog\/?p=114","title":{"rendered":"Einfacher Datenaustausch zwischen SSJS &#038; JS"},"content":{"rendered":"<p>Im XPages-Developer-Forum wurde die <a title=\"lotus.com - Button running server script followed by client script - is this possible?\" href=\"http:\/\/www-10.lotus.com\/ldd\/xpagesforum.nsf\/topicThread.xsp?documentId=FD910A785249B661852578D9000327AC&amp;action=openDocument\" target=\"_blank\">Frage<\/a> gestellt, wie man auf einer XPage einen Button dazu bringen kann, erst ein Serverseitiges JavaScript auszuf\u00fchren, um danach dessen R\u00fcckgabewert in einem\u00a0 Clientseitigen Javascript zu verarbeiten.<\/p>\n<p>Meine <a title=\"lotus.com - Re: Button running server script followed by client script - is this possible?\" href=\"http:\/\/www-10.lotus.com\/ldd\/xpagesforum.nsf\/topicThread.xsp?documentId=A7E13A3008E8F9AE852578D900428FEB&amp;action=openDocument%20\" target=\"_blank\">L\u00f6sung<\/a> hierzu sieht so aus, da\u00df der Datenaustausch \u00fcber eine Javascript-Variable durchgef\u00fchrt wird. Ein Partialrefresh l\u00e4dt dabei ein Outputscript nach, und das Clientseitige Javascript wird durch das &#8222;onComplete&#8220;-Ereignis der Aktion angesto\u00dfen. Das Outputscript wird dynamisch generiert.<\/p>\n<p>Hier der dazugeh\u00f6rige Code:<\/p>\n<pre>&lt;xp:button value=\"Label\" id=\"button2\"&gt;\r\n   &lt;xp:eventHandler event=\"onclick\" submit=\"true\"\r\n\u00a0\u00a0    refreshMode=\"partial\" refreshId=\"<strong>refreshMe<\/strong>\"&gt;\r\n      &lt;xp:this.onComplete&gt;\r\n         &lt;![CDATA[alert(<span style=\"color: #ff0000;\"><strong>test<\/strong><\/span>)]]&gt;\r\n      &lt;\/xp:this.onComplete&gt;\r\n   &lt;\/xp:eventHandler&gt;\r\n&lt;\/xp:button&gt;\r\n\r\n<strong>&lt;xp:div id=\"refreshMe\"&gt;<\/strong>\r\n   &lt;xp:scriptBlock id=\"scriptBlock1\"&gt;\r\n      &lt;xp:this.value&gt;\r\n         &lt;![CDATA[#{javascript:\"var <strong><span style=\"color: #ff0000;\">test<\/span><\/strong>='\" +\r\n         java.lang.System.currentTimeMillis() +\r\n         \"'\";}]]&gt;\r\n      &lt;\/xp:this.value&gt;\r\n   &lt;\/xp:scriptBlock&gt;\r\n<strong>&lt;\/xp:div&gt;<\/strong><\/pre>\n<p><em>[In Fett: Das Ziel des Partialrefresh \/\/ In Rot: Die &#8222;Austausch&#8220;-Variable]<\/em><\/p>\n<p>Nat\u00fcrlich l\u00e4\u00dft sich auf diese Weise auch mehr als nur eine Varable austauschen: Es kann beliebiger Code nachgeladen werden (komplette Javascript-Objekte uvm.). Der Scriptblock selbst ist nicht referenzierbar f\u00fcr den Partialrefresh, so da\u00df der Block in ein anderes Element eingebettet sein mu\u00df, damit der Trick funktioniert.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im XPages-Developer-Forum wurde die Frage gestellt, wie man auf einer XPage einen Button dazu bringen kann, erst ein Serverseitiges JavaScript auszuf\u00fchren, um danach dessen R\u00fcckgabewert in einem\u00a0 Clientseitigen Javascript zu verarbeiten. Meine L\u00f6sung hierzu sieht so aus, da\u00df der Datenaustausch &hellip; <a href=\"https:\/\/hasselba.ch\/blog\/?p=114\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,19,9,76,74],"tags":[7,77,4,5,12,3],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-html","category-javascript","category-ssjs","category-xpages","tag-domino","tag-html","tag-js","tag-ssjs","tag-web","tag-xpages"],"_links":{"self":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=114"}],"version-history":[{"count":4,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":118,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions\/118"}],"wp:attachment":[{"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasselba.ch\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}