Google Apps Script CardService.setContent в формате HTML
Я использую CardService в своей надстройке Google Scripts. я пытаюсь setContent
как HTML для этого я читаю его из Index.html. Но при рендеринге он печатает CSS и Javascript как текст, а не использует его в HTML-контенте.
function buildPage() {
var html = HtmlService.createHtmlOutputFromFile('Index').getContent();
var card = CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle('How do you feel ...'));
var section = CardService.newCardSection()
.setHeader("<h4>What do you want? </h4>");
section.addWidget(CardService.newKeyValue()
.setTopLabel('choose one')
.setContent(html)
);
Это мое Index.html
:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
#things {
position: absolute;
top: 50%;
left: 50%;
color: green;
margin-right: -50%;
text-align: center;
}
</style>
</head>
<body>
<p>List of things:</p>
<ul id="things">
<li>Loading...</li>
</ul>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
// The code in this function runs when the page is loaded.
$(function() {
google.script.run.withSuccessHandler(showThings)
.getLotsOfThings();
});
function showThings(things) {
var list = $('#things');
list.empty();
for (var i = 0; i < things.length; i++) {
list.append('<li>' + things[i] + '</li>');
}
}
</script>
</body>
</html>
2 ответа
Надстройки GMail поддерживают только очень простой стиль HTML.
См. https://developers.google.com/gmail/add-ons/concepts/widgets.
setContent()
принимает текст и поддерживает базовое форматирование HTML. Я думаю, что он не будет поддерживать полные HTML-теги, такие как стили, сценарии и т. Д.
Ссылка https://developers.google.com/apps-script/reference/card-service/key-value