javascript - 将 Google Apps 脚本变量传递给 HTML 脚本
问题描述
我在 Google 表格中设置了一个触发器,因此会在新的浏览器窗口中自动打开一个 URL。如果 URL 是硬编码的,则此方法有效。我希望 URL 是一个变量。如何将 URL 变量从 Apps 脚本传递到 HTML 脚本?我是新手编码员,所以请像我 5 岁一样解释。
如果 URL 是类似“ https://www.google.com ”的文本,则此功能有效
function openMap() {
var maplink = SpreadsheetApp.getActiveSheet().getRange("B2").getValues();
var js = "<script>window.open('https://www.google.com', '_blank', 'width=800, height=600');google.script.host.close();</script>";
var html = HtmlService.createHtmlOutput(js)
.setHeight(10)
.setWidth(100);
SpreadsheetApp.getUi().showModalDialog(html, 'Now loading.');
}
如果 URL 是变量,则此函数不起作用(我检查了 maplink 值及其有效 URL)
function openMap() {
var maplink = SpreadsheetApp.getActiveSheet().getRange("B2").getValues();
var js = "<script>window.open('maplink', '_blank', 'width=800, height=600');google.script.host.close();</script>";
var html = HtmlService.createHtmlOutput(js)
.setHeight(10)
.setWidth(100);
SpreadsheetApp.getUi().showModalDialog(html, 'Now loading.');
}
解决方案
您可以通过以下方式连接字符串:
...
var url = 'https://www.google.com';
var js = "<script>window.open('" + url + "', '_blank', 'width=800, height=600');google.script.host.close();</script>";
...
基本上
- 您通过关闭引号来关闭硬编码字符串的第一部分
- 添加动态变量
+
- 通过附加第二部分
+
并再次打开引号来继续硬编码字符串
我希望这很清楚!
推荐阅读
- python - 如何简化此代码并删除 if-else 块?
- python - 芹菜和烧瓶,同一个芹菜应用实例
- python - 过滤数据时出现内存错误
- python - 使用 Scikit Learn 查找集群的关键词
- azure - 从 VS Code 部署 Azure 函数 - 成功但在门户中不可见
- c# - 光标的屏幕坐标永远不会接近 0
- node.js - WinstonJS 自定义级别文件
- hyperledger-fabric - 对等节点在 Hyperledger Fabric 中崩溃后如何检索旧数据?
- java - 如何使用 DSL 为 ack/nack 和返回队列配置 amqp-outbound 适配器?
- excel - If else 语句程序中的运行时错误“1004”