2012-07-03 15 views
5

All'interno di un gestore di pulsante click, sto creando una nuova pagina web in questo modo:reindirizzamento automatico a una pagina

var page = SitesApp.getPageByUrl(url).createPageFromTemplate(title, name, template); 

e voglio reindirizzare l'utente automaticamente a quella pagina.

Non sono riuscito a trovare molte informazioni, può essere fatto?

+1

Non credo sia possibile ora, c'è una [richiesta di miglioramento a riguardo] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1061) –

+0

@Sergeinsas: il problema segnalato ha lo stato 'Non risolve (non applicabile)' –

risposta

10

Questo non può essere fatto in UiApp ma è fattibile in HtmlService:

function doGet() { 
    return HtmlService.createHtmlOutput(
    "<form action='http://www.google.com' method='get' id='foo'></form>" + 
    "<script>document.getElementById('foo').submit();</script>"); 
} 

Questo dovrebbe essere più facile; si prega di presentare una richiesta di funzionalità nello issue tracker e vedremo come possiamo renderlo più piacevole.

(Edit:. Per essere chiari, non c'è modo di fare questo da un callback UiApp, la tua intera applicazione dovrebbe essere utilizzando HtmlService per questo lavoro)

+0

Grazie, purtroppo il widget è stato avviato come UiApp, quindi per ora l'ho reso un processo in 2 passaggi aggiungendo un'ancora. Ho anche votato per la funzione nel collegamento fornito da @ Serge-insas. –

+0

Se lo si desidera, mi è venuto in mente che è possibile eseguire questa operazione nel seguente modo moderatamente complesso: 1. Modificare il pulsante in un'ancora 2. Avere il punto di ancoraggio in un altro script. 3. Avere quell'altro script esegue l'elaborazione e restituire il reindirizzamento tramite il metodo HtmlService. A seconda di quali informazioni è necessario passare al secondo script, questo potrebbe essere o non essere fattibile per te. –

+2

Questo non funziona più. Ho aperto un [problema] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1995). * Star * per tenere traccia degli aggiornamenti. @CoreyG per favore dai un'occhiata. –

0
risposta di

Corey G ha lavorato per me, ma la il problema è che la pagina web che stavo reindirizzando era incorporata in un iframe nella risposta del GAS, quindi l'URL reale nel browser web era quello del copione.

Questo è ciò che in realtà ha funzionato per me:

function doGet() { 
    return HtmlService.createHtmlOutput(
    "<script>window.top.location.href='https://example.com';</script>" 
); 
} 

This similar Q/A mi ha aiutato a risolverlo.

Spero che aiuti.

Problemi correlati