2016-11-28 128 views
1

我在我的Google Apps腳本編程開始時遇到了問題,我希望有人能幫助我。我昨天花了所有的時間試圖解決這個問題,但我正在圈圈。當通過庫實施時,Google Apps腳本功能不起作用

我寫了一個綁定到Google Doc的腳本。我從一個自定義菜單中調用一個html表單來收集必要的信息。

function initiateInvoice() { 
    var html = HtmlService.createHtmlOutputFromFile('askQu.html') 
    .setWidth(800) 
    .setHeight(500); 
    DocumentApp.getUi() 
    .showModalDialog(html, 'Daten Eingabe'); 
} 

此表格有一個「提交」按鈕和一個「退出」按鈕。

<input class="action" onclick="formSubmit()" type="button" value="Submit" /> 
<input onclick="google.script.host.close()" type="button" value="Exit" /> 

「提交」按鈕被按下時調用的腳本是

<script type="text/javascript"> 
    function formSubmit() { 
    google.script.run.getValuesFromForm(document.forms[0]); 
    google.script.host.close(); 
    } 
</script> 

該函數然後getValuesFromForm做我需要做的東西。並且html表單被關閉。發生的事情是一些計算,然後用文本或數字替換佔位符。我不認爲這是相關的,但可以根據需要提供任何所需的代碼。

這一切都像我希望的那樣工作。

但現在我已經將所有的代碼和html移動到一個額外的庫(除了調用自定義菜單)。表單在通過自定義菜單調用時仍然顯示,但表單中的提交按鈕不再有任何功能。 「退出」按鈕仍然有效。我試過剝離掉所有被調用的函數,這樣它就什麼都不做(確保它沒有被調用並掛起),但這沒有幫助。

我想表單中的JavaScript不工作或沒有達到我的函數getValuesFromForm,但我真的不知道在哪裏看或做什麼。

我真的很感謝任何人可以給我的幫助或提示。謝謝。 來自巴伐利亞阿爾卑斯山的問候。

奧尼爾

回答

2

google.script.run不僅可以在同一個項目中.GS文件運行從庫中的函數。

如果你必須在一個庫中的邏輯代碼,你將不得不在你的本地.GS創建函數文件來調用相關的庫函數,而這些本地函數可以調用與google.script.run

+0

謝謝你的明確和有用的答案。我應該提前24小時詢問,並保存了一些白髮。也許這被記錄在一些地方,但我找不到它 - 或者以我不明白的方式記錄下來。 –

+0

它被記錄在[這裏](https://developers.google.com/apps-script/guides/html/communication#private_functions):'google.script' _is也無法看到庫中的函數_ – etuardu

相關問題