我如何确定是否(谷歌应用程序)脚本正在执行的新表
How do I determine whether a (Google Apps) script is being executed on New Sheets?
我已经为谷歌表格写了一个谷歌应用程序脚本,但它需要运行不同的代码取决于它是在"新"表格上运行,还是在"旧表格"格式中运行。
它是在"旧工作表"上编写的,但我想在Google将所有工作表更新为"新工作表"格式时保持兼容性。(这特别适用于向用户显示一个警告框:https://developers.google.com/apps-script/guides/dialogs#alert_dialogs)
这感觉有点笨拙,最终可能会停止工作,但是您可以尝试调用新表不支持的函数之一。例如,通过newTrigger以编程方式创建一个触发器。
包含在新工作表中的代码:
function onOpen() {
try {
var everySixHours = ScriptApp.newTrigger("runCommand")
.timeBased()
.everyHours(6)
.create();
} catch(e) {
Logger.log(e);
Logger.log('You are using a new Google sheet');
}
Logger.log(everySixHours);
}
function runCommand() {
Logger.log('runCommand()');
}
在刷新工作表时将其输出到日志中:
[14-08-10 22:15:07:767 BST] Exception: You do not have permission to call newTrigger
[14-08-10 22:15:07:767 BST] You are using a new Google sheet
[14-08-10 22:15:07:767 BST] undefined
我认为您可以通过检查文档的创建日期来相当可靠地做到这一点。
相关文章:
- 在服务器端脚本执行后关闭选项卡
- 脚本执行多次
- 根据屏幕大小阻止脚本执行
- 检测TAB键并使脚本执行成为条件
- 脚本执行,但代码隐藏不执行
- 如何使用应用程序脚本执行API从谷歌工作表中提取数据
- 为什么设置window.location.htm不会停止脚本执行
- document.write(“anything”) 不会在 Internet Explorer 中作为外部脚本执行
- Extjs4 和 IE8 :选项卡上的 beforeclose 事件会抛出“无法从释放的脚本执行代码”
- 具有 asyc 属性的脚本仍会阻止其他脚本执行
- 如何在特定行暂停 JS 脚本执行
- JavaScript - 在高负载脚本执行之前绘制 html-mask
- 重新加载 Chrome 扩展程序内容脚本执行环境
- 将脚本执行保留在新打开的页面中
- 在脚本执行结束时关闭弹出窗口
- JavaScript 脚本执行时间太长.获取脚本需要太长时间提示
- 为什么 url 中的“#”会阻止 jquery 脚本执行
- 脚本执行两次,但时间戳相同
- Javascript setTimeout 会停止其他脚本执行吗?
- jQuery 在单击事件中的 if 条件后停止脚本执行