我正在为谷歌电子表格创建一个插件。当点击搜索按钮时,似乎什么都没有发生。如何调试它?
我正在使用谷歌应用程序脚本来创建插件。我使用的是QuickStart的示例,其中有一些更改以反映我的需求。
这是我的代码
<div class='sidebar branding-below'>
<form>
<div class="block col-contain">
<div class="block form-group">
<div>
<label for="Query-txt"><b>Query Term</b></label><br/>
<input type="text" name="querytxt" id="Query-txt" value="" class="width-100" />
</div>
<br/>
<div>
<label for="Channel-id-dd"><b>Channel</b></label><br/>
<select id="Channel-id-dd" class="width-100">
<option value="UCpZG4Vl2tqg5cIfGMocI2Ag">CFC India</option>
<option value="UCPPkrC9R5ED2R2JRTaQgETw">NCCF Church</option>
<option value="UCL8wQnv6qB7rZtEYfY3vPtw">River of Life Christian Fellowship</option>
</select>
</div>
<br/>
<div>
<label for="Region-Code-dd"><b>Country Code</b></label><br/>
<select id="Region-Code-dd" class="width-100">
<option value="AU">AU - Australia</option>
<option value="GB">GB - United Kingdom</option>
<option value="US">US - USA</option>
<option value="UAE">UAE - United Arab Emerates</option>
</select>
</div>
<br/>
<div>
<label for="Safety-Type"><b>Safety</b></label><br/>
<select id="Safety-Type" class="width-100">
<option value="moderate">moderate</option>
<option value="strict">strict</option>
<option value="none">none</option>
</select>
</div>
<br/>
<div class="block" id="button-bar">
<button class="blue" id="run-Query">Search</button>
</div>
</div>
</div>
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
$(document).ready(function (){
$('#run-Query').click(function () {
Logger.log("Starting");
var query = $('#Query-txt').val();
var channelid = $('#Channel-id-dd').val();
var countryCode = $('#Region-Code-dd').val();
var safety = $('#Safety-Type').val();
google.script.run
.withSuccessHandler(
alert("success");
)
.withFailureHandler(
alert("failure");
)
.withUserObject(this)
.search_all(query, safety, channelid, countryCode);
Logger.log("Complete");
});
});
</script>
我发现您的代码有两个问题。首先,Logger.log()是一个AppsScript服务器端方法。它被设计为从服务器端代码调用,例如在code.gs文件中。上面所写的是在最终用户的浏览器上执行的客户端javascript。要在这里登录,您可以执行与常规javascript编程相同的操作,而是使用console.log()方法。这将把日志记录语句写入javascript控制台(可通过Chrome中的Ctrl+Shift+J访问)。
其次,withSuccessHandler和withFailureHandler将在成功和失败场景中调用的方法作为参数,而不使用参数。您定义的方法将自动获取参数。注意它们是如何在Quickstart:中使用的
...
.withSuccessHandler(
function(returnSuccess, element) {
element.disabled = false;
})
...
为了提醒成功,就像你上面所说的,你需要使用这样的东西:
...
.withSuccessHandler(
function(returnVal, element) {
alert("Call was successful with return value: " + returnVal);
}
)
...
使用这两种方法,您应该拥有调试代码所需的工具。