JavaScript, HTML, CSS e... !
0 commenti

La sintassi è simile a quella del PHP

Scriptlets: combinare HTML e codice Apps Script per creare pagine dinamiche

In Google Apps Script, allo stesso di modo dei linguaggi server-side come l'ASP o il PHP, è possibile combinare codice HTML con codice derivante da file di script, al fine di produrre pagine dinamiche, grazie all'uso di 3 tag speciali chiamati Scriptlets.

All'interno di questi tag, e quindi nel file HTML, è possibile scrivere il nome di una funzione definita in un file di script .gs così come il nome di una variabile globale o addirittura un'API di Apps Script.
All'interno dei tag scriptlets il codice appare scritto in corsivo, in questo modo diventa facilmente identificabile rispetto al resto del codice HTML.

ATTENZIONE: è bene sapere che il codice presente all'interno delle scriptlets viene eseguito una sola volta al caricamento della pagina, a differenza invece di codice di script richiamato attraverso google.script.run

Esistono 3 tipologie di scriptlets:

- Standard scriptlets
La sintassi utilizzata è la seguente:

<? ... ?>

Esegue il codice contenuto tra i relativi tag senza mostrare l'eventuale contenuto alla pagina. A seconda di come vengono utilizzate possono influire sull'output della pagina generata (ad esempio per costruire un blocco condizionale all'interno del file HTML).

- Printing scriptlets
La sintassi utilizzata è la seguente:

<?= ... ?>

Esegue il codice contenuto tra i relativi tag restituendo il risultato nella pagina utilizzando l'escape contestuale (aggiunto automaticamente da Apps Script per proteggersi da attacchi XSS, cross-site scripting).
Se all'interno di due tag di tipo print scriptlets sono presenti istruzioni multiple, verrà mostrato il risultato solo della prima mentre le successive sarano trattate come scriptlets standard, ovvero saranno eseguite ma non sarà visualizzato un output.

- Force-print scriptlets
La sintassi utilizzata è la seguente:

<?!= ... ?>

Il comportamento è lo stesso di quello delle printing scriptlets con la differenza che forzano il non utilizzo dell'escape contestuale. La necessità di avvalersene è poco frequente, il caso principale si ha quando vogliamo stampare una stringa di testo così come è scritta, ad esempio per mostrare porzioni di codice Javascript o HTML dove i relativi tag non saranno interpretati ma tutti i caratteri risulteranno come testuali.
Un caso più pratico di utilizzo può essere quello per includere un file CSS, come mostrato nell'articolo 'Applicare i CSS ad un file HTML con Google Apps Script'.

Un esempio contestualizzato di utilizzo delle standard scriptlets e delle print scriptlets è presente nell'articolo 'Pagine Multiple in una Web App con Google Apps Script' di cui riporto di seguito un estratto a scopo illustrativo:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Ciao, questa è la pagina index.html
    <?var url = getScriptUrl();?>
    <br />
    <a href='<?=url?>?page=detail'>Vai alla pagina di dettaglio</a>
  </body>
</html>

Come si può osservare dal codice, con la standard scriplet valorizzo (ma non visualizzo) nel file HTML una variabile chiamata url contenente il risultato della funzione getScriptUrl() presente all'interno del file di script (non riportato nel codice di esempio ma presente nell'articolo indicato poco sopra). Successivamente con la printing scriplet vado a popolare l'attributo href del tag di link inviando a video il valore di quella variabile url.

Per eventuali approfondimenti sul servizio rimando alla documentazione ufficiale, Scriptlets.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web