我的Google表單上的onOpen事件僅在打開表單的版本時激活,但當我打開它以回答(/ viewform)時才激活。實際上,我只是希望它在有人打開表單進行回答時運行,因爲我的腳本使用表中的當前信息更新了組合框。我不確定這是否是最好的方式,但我願意接受建議。onOpen觸發器未在Google表單上激活
我嘗試在資源>添加觸發器菜單上創建函數onOpen()並創建doIt()函數並手動向onOpen添加觸發器。觸發器已正確列出,並且似乎正在打開版本更新的正確形式。可能我得到了錯誤的觸發器處理程序,但是沒有其他的用於我想要的(只是onEdit,它應該做onOpen正在做的事情,以及onInstall)。
這篇文檔非常簡潔,絕對關注Spreadsheets腳本。他們提到自定義掛鉤,但是,稱爲可安裝觸發器,其中一個實際上是:
當電子表格或表單編輯器打開時。 (請注意,當用戶打開表單進行響應時,該觸發器不會激活,而是在編輯器打開表單進行修改時觸發。)與簡單的onOpen觸發器不同,可安裝的觸發器可以充當安裝觸發器的用戶。
這表明onOpen應該做我想要的東西...所以現在我很困惑。
另外,我不確定權限是如何工作的。就目前而言,據我所知,似乎任何與我分享表單的人都可以編輯它,只要該人擁有網址,每個人都可以回答。有沒有將白名單列入白名單的方法?我不太喜歡URL是阻止外部人看到我加載到組合框中的數據的唯一屏障,並且最重要的是,通過提交表單來更新這些數據......看起來,暴力破解可能很容易解開很多'祕密'就是這樣形成的......或者從安全的角度來看,我可能會生氣嗎?
這樣做不會奏效,因爲我想在用戶打開表單進行回答時將組合框填滿,所以他可以選擇一個,而不是當他提交時(這太晚了)..儘管如此,我仍然嘗試過,但它並沒有奏效。再次,我不確定這個觸發器是否存在,但我願意用其他方式來製作動態組合框(選擇/選項或多項選擇題,即)... –
您描述的工作流似乎無法實現..你的意思是你的腳本創建了這個組合框?如果是的話,表格是不正確的做法...用UiApp或htmlService構建它 –
是的,它基本上用來自電子表格的數據填充組合框。基本上我想做的是一個動態組合框,它從電子表格加載它的項目。就像一個人的名單或類似的東西。它始終是一個最新的列表。 –