我试图使用外部CSS样式表。然而,我得到的是' *包括样式表* '在我的html侧边栏中渲染。我在code.gs文件中创建了include函数。为什么这不起作用?
的index.html
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding nome}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Code.gs
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= include('stylesheet'); ?>
</head>
<body>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
</body>
</html>
stylesheet.html
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Form')
.addItem('Open', 'openSidebar')
.addToUi();
}
function include(filename) {
return HtmlService.createHtmlOutputFromFile(filename)
.getContent();
}
function openSidebar(){
var htmlOutput = HtmlService.createHtmlOutputFromFile('Index');
htmlOutput.setTitle('Customer Inquiry Form');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
答案 0 :(得分:2)
此功能:
function openSidebar(){
var htmlOutput = HtmlService.createHtmlOutputFromFile('Index');
htmlOutput.setTitle('Customer Inquiry Form');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
您使用的是createHtmlOutputFromFile,它会提供 Index.html 的内容,但不会执行内部的scriptlets。
要执行scriptlet,您需要创建HtmlTemplate,然后调用evaluate()方法,您的函数应如下所示:
function openSidebar(){
var template = HtmlService.createTemplateFromFile('Index')
.evaluate()
.setTitle('Customer Inquiry Form')
SpreadsheetApp.getUi().showSidebar(template);
}
同时删除 stylesheet.html 中值'
的{{1}}:
gray