2012-11-08 118 views
0

app.close()沒有做任何事嗎?它似乎沒有工作.... //腳本作爲應用程序模板。 示例代碼爲什麼close()不做任何事情?

function doGet() { 
    var app = UiApp.createApplication(); 

    var button = app.createButton('Click Me'); 
    var closeButton = app.createButton('Close It'); 
    app.add(closeButton); 
    app.add(button); 

    var label = app.createLabel('The button was clicked.') 
       .setId('statusLabel') 
       .setVisible(false); 

    var label2 = app.createLabel('The Close button was clicked.') 
       .setId('statusLabel2') 
       .setVisible(false); 
    app.add(label); 
    app.add(label2); 
    var closeHandler = app.createServerHandler('close'); 
    closeHandler.addCallbackElement(label); 
    var handler = app.createServerHandler('myClickHandler'); 
    handler.addCallbackElement(label); 
    closeButton.addClickHandler(closeHandler); 
    button.addClickHandler(handler); 

    return app; 
} 

function myClickHandler(e) { 
    var app = UiApp.getActiveApplication(); 

    var label = app.getElementById('statusLabel'); 
    label.setVisible(true); 

    app.close(); 
    return app; 
} 
function close(e) 
{ 
    Logger.log("Here"); 
    var app = UiApp.getActiveApplication(); 
    var label2 = app.getElementById('statusLabel2'); 
    label2.setVisible(true); 
    return app.close(); 
} 

鏈接到採樣代碼 https://script.google.com/a/macros/scotts.com/s/AKfycbz-avIT3bZNJ68_EpRZYXmh66XLJzYI--F0n7DGNn8jL_wlG1k/exec

+0

在[google-apps-script] close()的STO搜索引擎上進行的簡單搜索將爲您提供所需的所有答案以及大量示例...... –

回答

0

作爲記錄here

「這隻會工作,如果該應用正被示出爲一個對話框,比如在 一個谷歌電子表格,它在作爲獨立服務發佈的應用 上調用時不起作用。「

這是瀏覽器的基本限制,順便說一句 - 頁面無法自行關閉。

+0

從技術上講,瀏覽器頁面可能會關閉本身一般情況下,如果給出了某些條件,但在Google Apps腳本方面也注意到'window.close()'不會工作,因爲Caja(http://code.google.com/p/google-caja/ ) 正在使用。 – Joscha

+0

關閉通過JavaScript創建的窗口通常是可能的,通常情況並非如此。無論如何,app.close()甚至不會嘗試這樣做;它所做的是有據可查的。 –

相關問題