我正在为Google电子表格创建附加组件。单击搜索按钮时似乎没有任何事情发生。如何调试这个?
我正在使用Google Apps脚本来创建插件。我正在使用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>
答案 0 :(得分:1)
我发现您的代码存在两个问题。首先,Logger.log()是一个Apps Script服务器端方法。它旨在从服务器端代码调用,例如在Code.gs文件中。您在上面写的是在最终用户的浏览器上执行的客户端JavaScript。要在此处进行登录,您可以执行与常规javascript编程相同的操作,并使用console.log()方法。这会将日志记录语句写入javascript控制台(可通过Chrome中的Ctrl + Shift + J访问)。
其次,withSuccessHandler和withFailureHandler将成功和失败场景中调用的方法作为参数,并且没有参数。您定义的方法将自动获取参数。请注意它们在快速入门中的使用方式:
...
.withSuccessHandler(
function(returnSuccess, element) {
element.disabled = false;
})
...
要像成功一样警告成功,你需要使用以下内容:
...
.withSuccessHandler(
function(returnVal, element) {
alert("Call was successful with return value: " + returnVal);
}
)
...
使用这两种方法,您应该拥有调试代码所需的工具。