2012-07-03 39 views
5

Bên trong một handler bấm vào nút, tôi là tạo ra một trang web mới như vậy:tự động chuyển hướng đến một trang

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

và tôi muốn chuyển hướng người dùng tự động đến trang đó.

Tôi không thể tìm thấy nhiều thông tin, điều này có thể thực hiện được không?

+1

Tôi không nghĩ rằng điều này là có thể bây giờ, có một [yêu cầu nâng cao về nó] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1061) –

+0

@Sergeinsas: Vấn đề được đề cập có trạng thái 'Sẽ không sửa chữa (Infeasible)' –

Trả lời

10

này không thể được thực hiện trong UiApp nhưng nó doable trong HtmlService:

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

này nên được dễ dàng hơn; vui lòng gửi yêu cầu tính năng trong số issue tracker và chúng tôi sẽ xem cách chúng tôi có thể làm cho điều này dễ chịu hơn.

(Edit:. Để được rõ ràng, không có cách nào để làm điều này từ một callback UiApp; toàn bộ ứng dụng của bạn sẽ phải sử dụng HtmlService để làm việc này)

+0

Cảm ơn, tiếc là tiện ích bắt đầu như là một UiApp vì vậy bây giờ tôi đã làm cho nó một quá trình 2 bước bằng cách thêm một neo. Tôi cũng đã bình chọn cho tính năng này trong liên kết được cung cấp bởi @ Serge-insas. –

+0

Nếu bạn vẫn muốn, nó xảy ra với tôi rằng bạn có thể làm cho công việc này theo cách nhẹ nhàng sau đây phức tạp: 1. Thay đổi nút thành một neo 2. Có điểm neo đến tập lệnh khác. 3. Yêu cầu tập lệnh khác thực hiện xử lý và trả về chuyển hướng thông qua phương thức HtmlService. Tùy thuộc vào thông tin nào bạn cần để chuyển sang tập lệnh thứ hai, điều này có thể hoặc không thể thực hiện được cho bạn. –

+2

Thao tác này không hoạt động nữa. Tôi đã mở [vấn đề] (http://code.google.com/p/google-apps-script-issues/issues/detail?id=1995). * Sao * nó để theo dõi các bản cập nhật. @CoreyG xin hãy xem. –

0

Corey G của câu trả lời làm việc cho tôi, nhưng vấn đề là trang web mà tôi đã chuyển hướng đã được nhúng vào khung nội tuyến trong phản hồi của GAS, vì vậy URL thực trong trình duyệt web là của tập lệnh.

Đây là những gì thực sự làm việc cho tôi:

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

This similar Q/A giúp tôi để giải quyết nó.

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan