2012-07-03 21 views
5

Wewnątrz obsługi kliknięcia przycisku, tworzę nową stronę internetową tak:automatyczne przekierowanie do strony

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

i chcę przekierować użytkownika automatycznie do tej strony.

Nie mogłem znaleźć wielu informacji, czy można to zrobić?

+1

Nie sądzę, że jest to możliwe teraz, istnieje [prośba o ulepszenie] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1061) –

+0

@Sergeinsas: Wspomniany problem ma status 'Nie naprawi (nie jest to możliwe)' –

Odpowiedz

10

ta nie może być wykonana w UiApp ale jest to wykonalne w HtmlService:

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

To powinno być łatwiejsze; proszę złożyć wniosek o funkcję w issue tracker, a zobaczymy, jak możemy uczynić to bardziej przyjemnym.

(Edit. Żeby było jasne, nie ma sposobu, aby to zrobić z zwrotnego UiApp; cała aplikacja musiałaby być używany HtmlService to zadziałało)

+0

Dzięki, niestety widget zaczął się jako UiApp, więc na razie zrobiłem 2-stopniowy proces dodając kotwicę. Głosowałem również za tą cechą w linku podanym przez @ Serge-insasa. –

+0

Jeśli nadal chcesz, przyszło mi do głowy, że możesz wykonać tę pracę w następujący łagodnie zwinięty sposób: 1. Zmień przycisk na kotwicę 2. Umieść punkt zakotwiczenia w innym skrypcie. 3. Niech inny skrypt wykona przetwarzanie i zwróci przekierowanie za pomocą metody HtmlService. W zależności od tego, jakie informacje należy przekazać do drugiego skryptu, może to być dla Ciebie lub nie możliwe. –

+2

To już nie działa. Otworzyłem [problem] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1995). * Star * to śledzić aktualizacje. @ CoreyG, proszę spojrzeć. –

0
odpowiedź

Corey G pracował dla mnie, ale Problem polega na tym, że strona internetowa, którą przekierowywałam, została osadzona w elemencie iframe w odpowiedzi na GAS, więc prawdziwy adres URL w przeglądarce internetowej był adresem skryptu.

To jest to, co rzeczywiście pracował dla mnie:

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

This similar Q/A pomógł mi go rozwiązać.

Mam nadzieję, że to pomaga.

Powiązane problemy