Aktuelle Zeit: 14.08.2018 21:18

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: JSc - JavaScript in Purebasic
BeitragVerfasst: 23.01.2018 14:19 
Offline
Benutzeravatar

Registriert: 23.01.2018 13:54
Hallo zusammen! Dies ist mein erster Post hier, daher stelle ich mich eben kurz vor.
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 :mrgreen:) 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:
JSc_Script(Name$, Script$, ParamIn$, RunOnce.l=1, jq.b=0)

RunOnce: Bei 1 wird der Code einmalig ausgeführt und ist dann 'Ready'
- 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:
; 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"))



Das Projekt war eine kleine Spielerei, daher auch kaum dokumentiert und letztendlich bin ich auf eine andere Lösung umgestiegen -
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

_________________
~ Lately, there are days I can’t even remember the other world.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye