2017-02-09 41 views
0

我在編程很新,主要是這樣做是爲了好玩,很抱歉,如果這個問題太明顯,欣賞,如果你能回答,因爲如果我知道的很少... : )添加一個HTML頁面的Web應用程序

因此,我試圖製作一個使用Google Apps腳本的網絡應用程序,但我想先在Dreamweaver中設計它,並將該html用於應用程序(由於Google中不再存在「構建用戶界面」選項腳本)。 應用程序需要能夠讀取和修改原始html,以響應用戶的操作。

我想簡單地做到這一點,但它沒有工作,當然,:

function doGet(e) { 
var app = UiApp.createApplication(); 
var page = HtmlService.createHtmlOutputFromFile('MyHtml'); 
app.add(page); 
return app; 
} 

確實工作時,我寫return page;但我只是以後不能達到的領域,其他功能,當我用var app = UiApp.getActiveApplication();

=================================編輯==== =============================

這裏的爲什麼我需要的web應用程序爲例,包含HTML頁面:

function showMyEmail() { 
var app = UiApp.getActiveApplication(); 
var email = Session.getActiveUser().getEmail(); 

// Assuming 'email_lbl' is the ID of the already existing target label I want to modify. 
app.getElementById('email_lbl').setText('Your email is: ' + email); 
return app; 
} 

不幸的是我不能使用它,就像因爲「應用程序」中不包含這就是所謂的「email_lbl」任何對象。 所以我需要找到一種方法來將html文件嵌入到應用程序中,以便稍後在其他服務器端函數中使用UiApp.getActiveApplication();

而且 - 我的第一個例子顯然返回一個空白頁,因爲「應用程序」不包含「頁」。 (當然,同樣的問題...)

=================================編輯== ===============================

有什麼建議?創造性的變通?我在這裏錯過的東西?

對不起,如果我是多餘的。我不知道如何更好地解釋...

感謝您的關注! 埃亞

+0

如果您需要將數據從您的Web App發送到服務器端代碼(在.gs文件中),您將需要使用'google.script.run.functionName()'客戶端API。 [鏈接到Apps腳本文檔](https://developers.google.com/apps-script/guides/html/reference/run)如果您不熟悉,請快速瀏覽一下。我保證你需要使用它。如果這對你沒有幫助,請回複評論。 –

+0

嗨桑迪, 感謝您的迴應! 我對這種方法很熟悉,但即使在用戶甚至做任何事情之前,我的問題就開始了。 「應用程序」不包含「頁面」,因此該頁面爲空白。我需要找到一種方法將html頁面嵌入到web應用程序中,以便將其顯示出來,並在服務器端函數中進一步使用。 我上面編輯了我的問題以顯示此類使用的示例。 – iyar

回答

1

正如你所指出你將返回HtmlService本身。您的所有客戶端邏輯將由您的Html頁面處理,因爲Apps腳本在服務器端運行。因此,任何需要訪問documentwindow的JavaScript都需要在您的html頁面中。由於它是一個web應用程序,您可以訪問google.script.run在腳本中運行代碼。

退房了這個文檔和web應用在:

https://developers.google.com/apps-script/guides/html/reference/run
https://developers.google.com/apps-script/guides/web

code.gs

function doGet(e) { 
    var page = HtmlService.createHtmlOutputFromFile('MyHtml'); 
    return page; 
} 

function square(val){ 
    return val*val 
} 

MYHTML。html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body>  
    <p id="val"></p> 
    </body> 
    <script> 
    google.script.run.withSuccessHandler(showVal).square(5); 

    function showVal(returnVal){ 
     document.getElementById('val').textContent = returnVal 
    } 
    </script> 
</html> 
相關問題