2012-07-03 21 views
5

Dentro de un controlador de botones de clic, estoy creando una nueva página web, así:Redirigir automáticamente a una página

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

y quiero redirigir al usuario automáticamente a esa página.

No pude encontrar mucha información, ¿se puede hacer esto?

+1

No creo que esto sea posible ahora, hay una [solicitud de mejora al respecto] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1061) –

+0

@Sergeinsas: el problema referido tiene el estado 'No se Corrigirá (Infeccesible)' –

Respuesta

10

Esto no se puede hacer en UiApp pero es factible en HtmlService:

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

Esto debería ser más fácil; por favor presente una solicitud de función en el issue tracker y veremos cómo podemos hacer esto más agradable.

(Edit:. Para que quede claro, no hay manera de hacer esto de una devolución de llamada UiApp; toda su aplicación tendría que ser mediante HtmlService para que esto funcione)

+0

Gracias, desafortunadamente el widget se inició como una aplicación Ui, así que por ahora hice un proceso de 2 pasos agregando un ancla. También voté por la función en el enlace proporcionado por @ Serge-insas. –

+0

Si aún desea, se me ocurrió que podría hacer que esto funcione de la siguiente manera ligeramente intrincada: 1. Cambie el botón a un ancla 2. Tenga el punto de anclaje a otra secuencia de comandos. 3. Haga que otra secuencia de comandos realice el procesamiento y devuelva la redirección a través del método HtmlService. Dependiendo de la información que necesite pasar al segundo script, esto puede o no ser factible para usted. –

+2

Esto ya no funciona. Abrí un [problema] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1995). * Star * it para realizar un seguimiento de las actualizaciones. @CoreyG, por favor, eche un vistazo. –

0
respuesta de

Corey G trabajó para mí, pero el El problema es que la página web que estaba redireccionando estaba incrustada en un iframe en la respuesta del GAS, por lo que la URL real en el navegador web era la del script.

Esto es lo que realmente funcionó para mí:

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

This similar Q/A me ayudó a resolverlo.

Espero que ayude.

Cuestiones relacionadas