Do javascript function in browser widget?

Andre Alves Garzia andre at andregarzia.com
Tue Nov 6 05:38:32 EST 2018


Keith,

If you're in control of the HTML used in the widget, then I'd advise you 
to build functions inside the HTML and just call them from LC instead of 
executing script directly, such as:

---- in the html ----

<html>

  <head>

   ...

    <script>

    function paintItRed() {

      document.body.style.backgroundColor = "red";

    }

    </script>

  </head>

  <body>

  ...

  </body>

</html>

-------------------


Then in the LC part you can do something like:


   do "paintItRed()" in widget "Browser"


Which is more readable. Also, the body of the function inside the HTML 
can be as complex as you want. Now, if you're not in control of the 
HTML, I'd opt for some out-of-the-box strategy where you have the LC 
HTTPD library serving the JS content and then use the LC "do .. in 
widget" form to add a new <script> tag with the "src" attribute pointing 
to the HTTPD library server, the script would load and execute in the 
context of the loaded page. This should only be done after the page is 
loaded though or your script risks executing before the HTML is complete.

Be aware that you can use the "do in widget" form with complex scripts, 
but I'd rather use the form above which keeps the JS and LC separate 
which is more of a personal preference than a technical reason to be honest.

om om

andre

On 11/6/2018 9:10 AM, Keith Clarke via use-livecode wrote:
> Folks,
> I’ve found a few examples of simple inline script injection to the browser widget, such as do "document.body.style.background = ‘red';" in widget "Browser”
>
> Is it possible to inject a multi-line javascript function - with variables definition, loops, etc - in this fashion or would the function need to be injected into the page within the browser as markup and then called from a one-line script from LiveCode?
>
> Thanks & regards,
> Keith
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list