commit 2e92a8bfec176e8f4eb220234ab7b0513b8b102b
parent b8243c2d126155520aa1d68c4936b54196b5fb14
Author: Alexander Burger <abu@software-lab.de>
Date: Wed, 4 Jul 2012 13:34:44 +0200
JavaScript 'lisp' calls
Diffstat:
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/CHANGES b/CHANGES
@@ -1,4 +1,5 @@
* DDmmm12 picoLisp-3.1.1
+ JavaScript 'lisp' calls
'+DbHint' gui prefix class
Stack alignments (64-bit)
Native 'struct' function (64-bit)
diff --git a/lib/form.js b/lib/form.js
@@ -1,14 +1,16 @@
-/* 07mar12abu
+/* 04jul12abu
* (c) Software Lab. Alexander Burger
*/
var FormReq = false;
var HintReq = false;
+var LispReq = false;
var Hint, Hints, Item, Beg, End;
try {
FormReq = new XMLHttpRequest();
HintReq = new XMLHttpRequest();
+ LispReq = new XMLHttpRequest();
FormReq.upload.addEventListener("progress", dropProgress, false);
FormReq.upload.addEventListener("load", dropLoad, false);
}
@@ -408,7 +410,10 @@ function hintKey(field, event, tok, coy) {
data += "&*Form=" + fld.value;
}
try {HintReq.send(data);}
- catch (e) {HintReq.abort();}
+ catch (e) {
+ HintReq.abort();
+ return true;
+ }
return (event.keyCode != 45); // INS
}
@@ -461,3 +466,22 @@ function hintOff(i) {
s.background = "white";
s.color= "black";
}
+
+/*** Lisp calls ***/
+function lisp(url) {
+ if (!LispReq)
+ return true;
+ if (arguments.length > 1) {
+ url += "?" + encodeURIComponent(arguments[1]);
+ for (var i = 2; i < arguments.length; ++i)
+ url += "&" + encodeURIComponent(arguments[i]);
+ }
+ try {LispReq.open("GET", url);}
+ catch (e) {return true;}
+ try {LispReq.send(null);}
+ catch (e) {
+ LispReq.abort();
+ return true;
+ }
+ return false;
+}