我正在尝试在 Google 文档中创建一个简单的插件,但在阅读文档后,我无法弄清楚 google.script.run 怎么可能无法正常工作。 这是我的基本代码:
代码.gs
function onOpen(e) {
DocumentApp.getUi().createAddonMenu()
.addItem('Start', 'showSidebar')
.addToUi();
}
function onInstall(e) {
onOpen(e);
}
function showSidebar() {
var ui = HtmlService.createHtmlOutputFromFile('sidebar')
.setTitle('NeuralText');
DocumentApp.getUi().showSidebar(ui);
}
function dummyFunc(){
var doc_id = DocumentApp.getActiveDocument().getId();
Logger.log(doc_id);
return doc_id;
}
侧边栏.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>
.branding-below {
bottom: 56px;
top: 0;
}
.branding-text {
left: 7px;
position: relative;
top: 3px;
}
.col-contain {
overflow: hidden;
}
.col-one {
float: left;
width: 50%;
}
.logo {
vertical-align: middle;
}
.radio-spacer {
height: 20px;
}
.width-100 {
width: 100%;
}
</style>
</head>
<body>
<div class="sidebar branding-below">
<div class="output"></div>
<form>
<div class="block form-group">
<label for="translated-text"><b>Insert URL</b></label>
<input class="width-100" id="shared-brief"/>
</div>
<div class="block" id="button-bar">
<button class="blue" id="test-btn">Test</button>
</div>
</form>
</div>
<div class="sidebar bottom">
<img alt="Add-on logo" class="logo" src="https://www.gstatic.com/images/branding/product/1x/translate_48dp.png" width="27" height="27">
<span class="gray branding-text">Translate sample by Google</span>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function() {
$('#test-btn').click(printTest);
google.script.run.withSuccessHandler(onSuccess)
.withFailureHandler(showError).dummyFunc();
});
function printTest() {
console.log('test');
}
function showError() {
console.log('error')
}
function onSuccess() {
console.log('success')
}
</script>
</body>
</html>
appsscript.json
{
"timeZone": "Europe/Paris",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"oauthScopes": ["https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/script.container.ui",
"https://www.googleapis.com/auth/documents",
"https://www.googleapis.com/auth/drive"]
}
如果我在编辑器中并运行
dummyFunc
,我可以在 Log 中看到文档的 ID。但是,如果我测试我的插件,我会不断从客户端函数 showError 收到“错误”。
我做错了什么?
我只需禁用新的 V8 运行时即可使其工作。 行为真的很奇怪,最重要的是,完全没有记录。
我也遇到了类似的问题,经过多次测试,我发现代码没有任何问题,我删除了用户的 google cookie,它按预期运行。