gpt4 book ai didi

javascript - 使用 Apps Script 操作 HtmlOutput 中的 html 内容

转载 作者:行者123 更新时间:2023-11-30 15:53:29 24 4
gpt4 key购买 nike

我正在使用 Apps Script 并尝试在我的 Google Sheet 中创建一个 Sidebar 以显示将内容转换为 JSON.

这是页面 Sidebar 的 html:

<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<!-- The CSS package above applies Google styling to buttons and other elements. -->
<style>
.width-100 {
width: 100%;
height: 100%
}
</style>
</head>
<body>
<div class="sidebar branding-below">
<form>
<div class="block form-group">
<label for="json"><b>JSON</b></label>
<textarea class="width-100" id="json" name="json" rows="10"></textarea>
</div>
</form>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
</body>
</html>

我之前已经创建了所需的 JSON,现在正尝试使用此方法使用创建的 JSON 设置 textarea 的内容:

function displayText_(text) {
var html = HtmlService.createHtmlOutputFromFile('Sidebar')
.setTitle('JSON Results');
var contents = html.getContent();
contents.getElementById('json').setText(text);
html.setContent(contents);
SpreadsheetApp.getUi().showSidebar(html);
}

这是一个用于答案的示例 JSON 字符串:

var jsonString = {"someKey":"someValue","anotherKey":"anotherValue"}

我尝试通过连接到 htmlcontents(我目前的方法)来使用 getElementById。什么都不会产生预期的结果。我猜这很简单,但不知道如何从 Apps Script 操作 html。

我很确定我可以在 Apps Script 中创建整个 html 内容并替换这些内容,但这是一种 hack 并且不容易维护。

有更简单的方法吗?

最佳答案

据我了解,您要实现的目标是从服务器端向客户端注入(inject)内容。 displayText_ 函数是服务器端函数。
如果是这样,您可以将服务器端功能更改为如下所示的功能:(我们将使用模板文件代替简单的客户端文件)

function displayText_(text) {
var htmlTemplate = HtmlService.createTemplateFromFile('Sidebar');
htmlTemplate.json = text;
var html = htmlTemplate.evaluate().setTitle('JSON Results');
SpreadsheetApp.getUi().showSidebar(html);
}

然后在客户端你需要改变

<textarea class="width-100" id="json" name="json" rows="10"></textarea>

对于

  <textarea class="width-100" id="json" name="json" rows="10"><?!=json?></textarea>

如果你想有一个动态变化那么你应该看看客户端/服务器通信过程here

关于javascript - 使用 Apps Script 操作 HtmlOutput 中的 html 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com