Я изучаю «HTML Service: Best Practices»Как реализовать лучшие практики Google Apps Script с помощью stylesheet.html?
и я хочу внести переменные в свои стили. Я знаю, как их привести, если я поместил свои стили в page.html, но не повезло, когда попытался использовать пример «HTML Service: Best Practices», выпущенный Google.
мой сломанный page.html выглядит
<? var data = getData(); ?>
<?!= include('Stylesheet'); ?>
<br />
<div id="title"><?= data.myTitle ?></div>
<div id="thanksMessage">
<p><?= data.myText ?></p>
</div>
<p>More text</p>
мое разбитое Stylesheet.html выглядит
<style>
<? var data = Code.gs.getData(); ?>
@tcolor: #4D926F;
@tcolor2: <?= data.myTitleColorValue ?>;
p {
color: #da0202;
}
#thanksMessage {
font-size: 1.5em;
line-height: 50%;
color: #da0202;
}
#title {
font-size: 3.3em;
line-height: 50%;
color: <?= data.myTitleColorValue ?>;
text-align: left;
font-weight: bold;
margin: 0px;
margin-bottom: 10px;
}
</style>
Мой рабочий Code.gs выглядит
function doGet(request) {
return HtmlService.createTemplateFromFile('page')
.evaluate();
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.getContent();
}
function getData() {
var myValues = {};
myValues["myTitleColorValue"] = "#da0202"
myValues["myTitle"] = "Hello Friends"
myValues["myText"] = "Thank-you for your help!"
return myValues;
};
Так что я сделал это работа, принося «стили» в страницу.html, как это
<? var data = getData(); ?>
<style>
p {
color: #da0202;
}
#thanksMessage {
font-size: 1.5em;
line-height: 50%;
color: #da0202;
}
#title {
font-size: 3.3em;
line-height: 50%;
c/olor: #da0202;
c/olor: @tcolor;
color: <?= data.myTitleColorValue ?>;
text-align: left;
font-weight: bold;
margin: 0px;
margin-bottom: 10px;
}
</style>
<br />
<div id="title"><?= data.myTitle ?></div>
<div id="thanksMessage">
<p><?= data.myText ?></p>
</div>
<p>More text</p>
Я надеюсь, что кто-то может помочь мне увидеть мои ошибки.
С уважением,
Chris
Сэнди, я поместил песочницу в чистку «дот» и да, у Stylesheet.html есть скриптлеты. Это та часть, с которой у меня возникают проблемы. Поэтому я думаю, что вы говорите, что если ваш Stylesheet.html нуждается в сценариях, тогда стили должны быть в файле page.html и что я не смогу заставить их работать на странице Stylesheet.html ... правильно? –
Я не уверен, что скриптлеты работают на страницах, отличных от файла, который подается в 'doGet()'. Но все равно все в одном месте. Единственная причина, чтобы разбить вещи на несколько файлов, заключается в том, чтобы иметь возможность понять ваш код и быстрее найти материал. Если бы не это, вы бы все равно поместили все в один и тот же файл. В итоге все заканчивается одной большой массой кода. Итак, если вы поместите скрипты в основной файл page.html, эта информация будет доступна для всего остального. Все, что возвращается в скриптлет, все еще доступно для вашего файла Stylesheet.html. –