Google 表单中的 Google 脚本的每日时间限制
Daily time limitations from Google Scripts in Google Forms
我已经准备好 google 表格,但我想为其设置一个时间限制,以便它每天从早上 8 点(它开始接受回复)到下午 5 点(它停止接受回复)上线。我设法在这里找到了接近我想要的东西 https://www.labnol.org/internet/schedule-google-forms/20707/。
我不是一个不懂JS但懂一点C++的程序员(大学必修课)。
我试图通过在线研究来根据我的意愿调整源代码。
这是我在 google 脚本中的脚本。
function oc() {
ScriptApp.newTrigger('openForm')
.timeBased()
.everyDays(1)
.atHour(8)
.create();
ScriptApp.newTrigger('closeForm')
.timeBased()
.everyDays(1)
.atHour(16)
.create();
}
function openForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
}
function closeForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
deleteTriggers_();
}
这个示例脚本怎么样?
流量:
- 为了启动
oc()
,请先运行initTrigger()
。这样,oc()
每天上午 0:00 启动。请首先 运行 这一次。
- 在
initTrigger()
之后 运行,您可以在脚本编辑器上确认此触发器。
- 当
oc()
在上午 0:00 启动时,用于启动 openForm()
和 closeForm()
的现有触发器将被删除。
- 然后,用于启动
openForm()
和 closeForm()
的触发器被安装为新触发器。此时openForm()
和closeForm()
的触发日分别是今天上午8:00和下午5:00。
脚本:
function initTrigger(){
ScriptApp.newTrigger('oc').timeBased().atHour(0).everyDays(1).create();
}
function oc() {
ScriptApp.getProjectTriggers().forEach(function(e){
if(e.getHandlerFunction() == "openForm" || e.getHandlerFunction() == "closeForm") {
ScriptApp.deleteTrigger(e)
}
});
var time = new Date()
time.setHours(8);
time.setMinutes(0);
ScriptApp.newTrigger("openForm").timeBased().at(time).create();
time.setHours(17);
time.setMinutes(0);
ScriptApp.newTrigger("closeForm").timeBased().at(time).create();
}
function openForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
}
function closeForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
// deleteTriggers_();
}
我已经准备好 google 表格,但我想为其设置一个时间限制,以便它每天从早上 8 点(它开始接受回复)到下午 5 点(它停止接受回复)上线。我设法在这里找到了接近我想要的东西 https://www.labnol.org/internet/schedule-google-forms/20707/。
我不是一个不懂JS但懂一点C++的程序员(大学必修课)。 我试图通过在线研究来根据我的意愿调整源代码。 这是我在 google 脚本中的脚本。
function oc() {
ScriptApp.newTrigger('openForm')
.timeBased()
.everyDays(1)
.atHour(8)
.create();
ScriptApp.newTrigger('closeForm')
.timeBased()
.everyDays(1)
.atHour(16)
.create();
}
function openForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
}
function closeForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
deleteTriggers_();
}
这个示例脚本怎么样?
流量:
- 为了启动
oc()
,请先运行initTrigger()
。这样,oc()
每天上午 0:00 启动。请首先 运行 这一次。- 在
initTrigger()
之后 运行,您可以在脚本编辑器上确认此触发器。
- 在
- 当
oc()
在上午 0:00 启动时,用于启动openForm()
和closeForm()
的现有触发器将被删除。 - 然后,用于启动
openForm()
和closeForm()
的触发器被安装为新触发器。此时openForm()
和closeForm()
的触发日分别是今天上午8:00和下午5:00。
脚本:
function initTrigger(){
ScriptApp.newTrigger('oc').timeBased().atHour(0).everyDays(1).create();
}
function oc() {
ScriptApp.getProjectTriggers().forEach(function(e){
if(e.getHandlerFunction() == "openForm" || e.getHandlerFunction() == "closeForm") {
ScriptApp.deleteTrigger(e)
}
});
var time = new Date()
time.setHours(8);
time.setMinutes(0);
ScriptApp.newTrigger("openForm").timeBased().at(time).create();
time.setHours(17);
time.setMinutes(0);
ScriptApp.newTrigger("closeForm").timeBased().at(time).create();
}
function openForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(true);
}
function closeForm() {
var form = FormApp.getActiveForm();
form.setAcceptingResponses(false);
// deleteTriggers_();
}