Ich bin 24 Jahre alt und PureBasic ist die erste Sprache in der ich je programmiert
habe (ich denke ich war 12 als ich angefangen habe ) Mittlerweile
programmiere ich beruflich und bin mit vielen anderen Sprachen vertraut geworden,
dennoch greife ich immer wieder gerne auf PureBasic zurück, weil die Sprache,
wie soll man sagen ... naja ... einfach schön/simpel und schnell ist
So nun zum Wesentlichen: Ich habe meine Festplatte etwas aufgeräumt und dabei
meine alte Anbindung von JS in PureBasic gefunden. Das ganze läuft über Webgadgets,
die auf einem unsichtbaren Fenster erstellt werden. Man schreibt sein "Script", welches
dann (mit injizierten Funktionen für Rückgabe oder Erfassung neuer Parameter) ausgeführt
wird. Die Parameter/Returns sind im JSON-Format, daher kann man mehrere übergeben.
Im Wesentlichen ist alles (hoffentlich) schlüssig, aber kurz zu dieser Funktion:
Code: Alles auswählen
JSc_Script(Name$, Script$, ParamIn$, RunOnce.l=1, jq.b=0)
- Bei 0 läuft der Code weiter!
- Es gibt noch Spielerein die nicht getestet worden sind:
Bei -1: Wird der Code erneut ausgeführt.
Bei -2: Ebenfalls, aber die Startparameter sind die Ausgangsparameter.
JQ: Soll JQ injiziert werden 0/1.
Download: http://www.mediafire.com/file/uzls8jpyn ... mpiler.zip (Includes mit Beispielcode)
BeispielCode:
Code: Alles auswählen
; Library for simple usage of JS-Scripts in PureBasic
IncludeFile "_Init.pb"
IncludeFile "_IDLE.pb"
;::::::::::::::::::::::::::::::::::::::::::::::::::::
;ScriptA with JQuery in it
ScriptA$ = "var x=$('body');"
ScriptA$ + "x.addClass('testClass');"
ScriptA$ + "jsc_return(x.attr('class'));"
;ScriptB with simple use of arguments, Math and Strings
ScriptB$ = "var x= args.name + 5*3*213*5.4+'_2secondscript_test2';"
ScriptB$ + "jsc_return(x);"
;ScriptC with counter
ScriptC$ = "window.setInterval('args.count++;" ;Every 300 secs new Output
ScriptC$ + "jsc_return(args.count)',300);"
;ScriptD with Prompt and User-Data
ScriptD$ = "jsc_return(prompt('Get from User','Default'));"
;Register Scripts
JSc_Script("script_a", ScriptA$, "{'name':'test'}",1,1)
JSc_Script("script_b", ScriptB$, "{'name':'test'}")
JSc_Script("script_c", ScriptC$, "{'count':0}", 0)
JSc_Script("script_d", ScriptD$, "{}")
;Run Scripts
OpenConsole("JSC")
While JSc_Script_Ready("script_a") <> 1 Or JSc_Script_Ready("script_b") <> 1 Or Val(JSc_Script_Out("script_c")) < 5
JSc_IDLE()
Delay(1)
PrintN("a: "+JSc_Script_Out("script_a"))
PrintN("b: "+JSc_Script_Out("script_b"))
PrintN("c: "+JSc_Script_Out("script_c"))
PrintN("d: "+JSc_Script_Out("script_d"))
PrintN("======")
Wend
;Get Final-Results
MessageRequester("Out", JSc_Script_Out("script_a")) ;Returns are in JSON_Format
MessageRequester("Out", JSc_Script_Out("script_b"))
MessageRequester("Out", JSc_Script_Out("script_c"))
MessageRequester("Out", JSc_Script_Out("script_d"))
aber eventuell hilft das ja dem ein oder anderen beim Aufbau seiner eigenen Anbindung.
Dementsprechend wird der Code auch (von mir) nicht geupdated, aber wer das weiterentwickeln möchte, darf das gerne machen
So damit genug für's Erste, viel Spaß beim Testen/Entwickeln und schönen Tag noch!
Mfg,
Kirito