我尝试在Google表格边栏中查询外部JSON / JSONP API,并使用它来填充侧边栏中的jqueryui自动完成小部件。
demo code from the jqueryui documentation在边栏内不起作用。加载微调器旋转,但列表从不填充。我认为这是GAS沙箱的安全限制。
我的下一个想法是在服务器端执行JSON查询,并从自动完成框调用服务器端请求。这是我的服务器端代码:
function getNames(name) {
var base = "http://gd.geobytes.com/AutoCompleteCity?q="
var url = base + name
return apiQuery(url);
}
function apiQuery(url) {
var json = UrlFetchApp.fetch(url).getContentText();
var data = JSON.parse(json);
return data;
}
在我的<script>
:
$(function() {
$( "#sponsorsearch" ).autocomplete({
source: function( request, response ) {
var results = google.script.run.getNames(request.term);
response(results);
},
minLength: 3,
delay:500
});
});
HTML的相关内容:
<ul>
<li><label><input id="sponsorsearch"><span class="small">City name</span></label></li>
</ul>
为什么这不起作用的任何想法?
答案 0 :(得分:0)
var results = google.script.run.getNames(request.term);
无效。你需要运行类似的东西:
function getData(){
google.script.withFailureHandler('getNamesReturn').run.getNames(request.term);
};
function getNamesReturn(results){
//results is the the return data from getNames;
Add the jQuery autocomplete code here
};