Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Google应用程序脚本中使用IFRAME沙盒实现jquery自动完成_Jquery_Google Apps Script - Fatal编程技术网

在Google应用程序脚本中使用IFRAME沙盒实现jquery自动完成

在Google应用程序脚本中使用IFRAME沙盒实现jquery自动完成,jquery,google-apps-script,Jquery,Google Apps Script,我在表单中有一个输入字段,我想在其中包含autocomplete以显示用户Google contacts目录中的所有联系人 理想的解决方案是使用GoogleContactsAPI(但是,我还没有实现这一点) 尽管如此,我目前在原生沙箱中使用jquery autocomplete函数处理ContactsApp类 我的问题是: 为什么它不能在IFRAME中工作?我有其他代码停止在本机中工作,所以我真的需要在IFRAME中找到一个解决方案 如果在IFRAME中不可能,您是否有使用Contacts AP

我在表单中有一个输入字段,我想在其中包含autocomplete以显示用户Google contacts目录中的所有联系人

理想的解决方案是使用GoogleContactsAPI(但是,我还没有实现这一点)

尽管如此,我目前在原生沙箱中使用jquery autocomplete函数处理ContactsApp类

我的问题是:

  • 为什么它不能在IFRAME中工作?我有其他代码停止在本机中工作,所以我真的需要在IFRAME中找到一个解决方案
  • 如果在IFRAME中不可能,您是否有使用Contacts API的经验
  • 这是我迄今为止的代码:

    谷歌脚本

    function showSidebar() {
      var ui = HtmlService.createHtmlOutputFromFile('Sidebar1')
          .setSandboxMode(HtmlService.SandboxMode.NATIVE)
      FormApp.getUi().showSidebar(ui);
    }
    
    function getAvailableTags() {
    var contacts = ContactsApp.getContacts();
    var list = [];
    for(var i = 0; i < contacts.length; i++){
      var emails = contacts[i].getEmails();
    if(emails[0] != undefined){
      list.push(emails[0].getAddress());
    }
    }
    
    return( list );
    }
    
    function showSidebar() {
      var ui = HtmlService.createHtmlOutputFromFile('Sidebar1')
          .setSandboxMode(HtmlService.SandboxMode.NATIVE)
      FormApp.getUi().showSidebar(ui);
    }
    
    function getAvailableTags() {
    var contacts = ContactsApp.getContacts();
    var list = [];
    for(var i = 0; i < contacts.length; i++){
      var emails = contacts[i].getEmails();
    if(emails[0] != undefined){
      list.push(emails[0].getAddress());
    }
    }
    
    return( list );
    }
    
    函数showSidebar(){
    var ui=HtmlService.createHtmlOutputFromFile('Sidebar1')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE)
    FormApp.getUi().showSidebar(ui);
    }
    函数getAvailableTags(){
    var contacts=ContactsApp.getContacts();
    var列表=[];
    对于(变量i=0;i
    Html文件

    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
    
    <input type="text" class="width-100" id="user-input1" autocomplete="on">
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    
    <script>
    $(function() {
      google.script.run.withSuccessHandler(buildTagList)
          .getAvailableTags();
    });
    
    function buildTagList(list) {
    $( "#user-input1" ).autocomplete({
        source: function(request, response) {
            var results = $.ui.autocomplete.filter(list, request.term);
    
            response(results.slice(0, 10));
        },
        minLength: 2,
        autoFocus: true,
        delay: 500
    
    
      });
    }
    </script>
    
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> **<--- this is originally incorrect--->**
    
    <input type="text" class="width-100" id="user-input1" autocomplete="on">
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> **<-- this was also originally incorrect-->**
    
    <script>
    $(function() {
      google.script.run.withSuccessHandler(buildTagList)
          .getAvailableTags();
    });
    
    function buildTagList(list) {
    $( "#user-input1" ).autocomplete({
        source: function(request, response) {
            var results = $.ui.autocomplete.filter(list, request.term);
    
            response(results.slice(0, 10));
        },
        minLength: 2,
        autoFocus: true,
        delay: 500
    
    
      });
    }
    </script>
    
    
    $(函数(){
    google.script.run.withSuccessHandler(buildTagList)
    .getAvailableTags();
    });
    函数buildTagList(列表){
    $(“#用户输入1”)。自动完成({
    来源:功能(请求、响应){
    var results=$.ui.autocomplete.filter(列表、请求、术语);
    反应(结果切片(0,10));
    },
    最小长度:2,
    自动对焦:对,
    延误:500
    });
    }
    
    在查看@Zig Mandel提供的HtmlService限制后,我意识到包含的库不是来自安全页面。因此找到了解决问题的(https)

    谷歌脚本

    function showSidebar() {
      var ui = HtmlService.createHtmlOutputFromFile('Sidebar1')
          .setSandboxMode(HtmlService.SandboxMode.NATIVE)
      FormApp.getUi().showSidebar(ui);
    }
    
    function getAvailableTags() {
    var contacts = ContactsApp.getContacts();
    var list = [];
    for(var i = 0; i < contacts.length; i++){
      var emails = contacts[i].getEmails();
    if(emails[0] != undefined){
      list.push(emails[0].getAddress());
    }
    }
    
    return( list );
    }
    
    function showSidebar() {
      var ui = HtmlService.createHtmlOutputFromFile('Sidebar1')
          .setSandboxMode(HtmlService.SandboxMode.NATIVE)
      FormApp.getUi().showSidebar(ui);
    }
    
    function getAvailableTags() {
    var contacts = ContactsApp.getContacts();
    var list = [];
    for(var i = 0; i < contacts.length; i++){
      var emails = contacts[i].getEmails();
    if(emails[0] != undefined){
      list.push(emails[0].getAddress());
    }
    }
    
    return( list );
    }
    
    函数showSidebar(){
    var ui=HtmlService.createHtmlOutputFromFile('Sidebar1')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE)
    FormApp.getUi().showSidebar(ui);
    }
    函数getAvailableTags(){
    var contacts=ContactsApp.getContacts();
    var列表=[];
    对于(变量i=0;i
    Html文件

    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
    
    <input type="text" class="width-100" id="user-input1" autocomplete="on">
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    
    <script>
    $(function() {
      google.script.run.withSuccessHandler(buildTagList)
          .getAvailableTags();
    });
    
    function buildTagList(list) {
    $( "#user-input1" ).autocomplete({
        source: function(request, response) {
            var results = $.ui.autocomplete.filter(list, request.term);
    
            response(results.slice(0, 10));
        },
        minLength: 2,
        autoFocus: true,
        delay: 500
    
    
      });
    }
    </script>
    
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> **<--- this is originally incorrect--->**
    
    <input type="text" class="width-100" id="user-input1" autocomplete="on">
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> **<-- this was also originally incorrect-->**
    
    <script>
    $(function() {
      google.script.run.withSuccessHandler(buildTagList)
          .getAvailableTags();
    });
    
    function buildTagList(list) {
    $( "#user-input1" ).autocomplete({
        source: function(request, response) {
            var results = $.ui.autocomplete.filter(list, request.term);
    
            response(results.slice(0, 10));
        },
        minLength: 2,
        autoFocus: true,
        delay: 500
    
    
      });
    }
    </script>
    
    ****
    ****
    $(函数(){
    google.script.run.withSuccessHandler(buildTagList)
    .getAvailableTags();
    });
    函数buildTagList(列表){
    $(“#用户输入1”)。自动完成({
    来源:功能(请求、响应){
    var results=$.ui.autocomplete.filter(列表、请求、术语);
    反应(结果切片(0,10));
    },
    最小长度:2,
    自动对焦:对,
    延误:500
    });
    }