jqueryui在Google应用程序脚本中自动完成外部数据

jqueryui在Google应用程序脚本中自动完成外部数据,jquery,json,jquery-ui,google-apps-script,autocomplete,Jquery,Json,Jquery Ui,Google Apps Script,Autocomplete,我试图从GoogleSheets侧栏中查询外部JSON/JSONPAPI,并使用它填充侧栏中的jqueryui自动完成小部件 在侧边栏中无法使用。加载微调器旋转,但列表从不填充。我想这是气体沙箱的安全限制 我的下一个想法是在服务器端执行JSON查询,并从自动完成框调用服务器端请求。以下是我的服务器端代码: function getNames(name) { var base = "http://gd.geobytes.com/AutoCompleteCity?q=" var url =

我试图从GoogleSheets侧栏中查询外部JSON/JSONPAPI,并使用它填充侧栏中的jqueryui自动完成小部件

在侧边栏中无法使用。加载微调器旋转,但列表从不填充。我想这是气体沙箱的安全限制

我的下一个想法是在服务器端执行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;
}
在我的
中:

HTML的相关部分:

<ul>
 <li><label><input id="sponsorsearch"><span class="small">City name</span></label></li>
</ul>
  • 城市名称

你知道为什么这不起作用吗?

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
};

这就是我所担心的——除非我弄错了,否则我必须在页面加载时调用getData(),这意味着它必须检索可能名称的整个数据库。(我正在查询的实际数据库都是现任和前任国会议员,所以有12000个名字。)或者,有没有办法在用户开始键入自动完成输入时只调用getData?(我可能在这里回答我自己的问题,但我怀疑应该使用的方法不是使用JQueryUI小部件,而是使用一个自制的自动完成。)最好在onLoad函数期间获取名称。如果在激活文本字段时执行此操作,则需要几秒钟才能自动完成数据。我最近使用jQuery方法拉取了一个用户联系人,我对其性能感到满意。
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
};