Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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
Javascript 创建HTML侧栏时使用存储的属性_Javascript_Html_Google Apps Script_Sidebar - Fatal编程技术网

Javascript 创建HTML侧栏时使用存储的属性

Javascript 创建HTML侧栏时使用存储的属性,javascript,html,google-apps-script,sidebar,Javascript,Html,Google Apps Script,Sidebar,使用侧边栏,我获取用户输入并将其保存为脚本属性。下次加载侧边栏时,我想检查保存的属性是否存在。如果是,则显示它而不是文本输入框 我知道如何使用: google.script.run.withSuccessHandler().myFunction() 老实说,在这一点上,我已经尝试了很多不同的事情。任何帮助都将不胜感激 这就是我所尝试的,如果存在值,我想在侧边栏中加载它们。如果他们不喜欢,我希望它加载一个文本输入框,这是默认情况下它所做的 编辑-添加代码 function loadSideba

使用侧边栏,我获取用户输入并将其保存为脚本属性。下次加载侧边栏时,我想检查保存的属性是否存在。如果是,则显示它而不是文本输入框

我知道如何使用:

 google.script.run.withSuccessHandler().myFunction()
老实说,在这一点上,我已经尝试了很多不同的事情。任何帮助都将不胜感激

这就是我所尝试的,如果存在值,我想在侧边栏中加载它们。如果他们不喜欢,我希望它加载一个文本输入框,这是默认情况下它所做的

编辑-添加代码

function loadSidebarValues() {
  if (dateText != 'ErrorStuff') {
    var div = document.getElementById('dateValue');
    div.innerHTML = dateText;
    var errorDiv = document.getElementById('error');
    errorDiv.innerHTML = "";
    $('#dateText').val(
      PropertiesService.getScriptProperties().getProperty('dateColumn')
    );
  } else {
    var div = document.getElementById('sidebarValues');
    div.innerHTML = "";
    var errorDiv = document.getElementById('error');
    errorDiv.innerHTML = 'There was an error.';
  }
  var scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperties({
    'dateColumn': 'dateText',
  });
  Logger.log("date: " + userProperties.getProperty('dateColumn'));
}

function onLoad(){
  if (PropertiesService.getScriptProperties().getProperty('dateColumn') != null) {
    loadSidebarValues();
  };
}

您可以编写服务器代码来检索
UserProperties
值,然后按照文件打开对话框中的说明运行HTML脚本来获取该值 章节

他们的工作:

  • code.gs中的
    getOAuthToken
  • 通过以下代码在
    Picker.html
    中调用该函数:

    function getOAuthToken() {
      google.script.run.withSuccessHandler(createPicker)
          .withFailureHandler(showError).getOAuthToken();
    }
    
  • createPicker
    方法,来自
    withSuccessHandler
    在第一步中从
    getOAuthToken
    获取令牌值

  • 您可以对自己的案例使用相同的模式。

    如果同一应用程序脚本文件有不同的用户,则您可能希望使用“UserProperties”,而不是脚本属性。如果使用脚本属性将设置与用户关联,则必须有方法确定哪个用户正在使用侧边栏。您是否有捕获当前用户的代码?然后,您可以为每个用户拥有一个单独的属性(键)。通常情况下,我不会将脚本属性用于用户设置,但如果您需要自己直接访问和编辑用户设置的数据集,这可能是一个原因。我对自己缺乏这方面的知识感到有点尴尬。我对应用程序脚本相当了解,但在我的项目中没有使用太多的HTML。我的大部分尝试都是通过谷歌搜索找到的大块东西。我会试着把它们贴出来。这个代码在哪里?你的侧边栏的
    .html
    文件?还是您的
    .gs
    文件?JQuery和document在Google Apps脚本
    .gs
    文件中无效,除非您在侧边栏
    代码中插入了
    PropertiesService
    ,否则在那里也是无效的。我以为您已经解决了这个问题?感谢您的帮助,我们将尽快对其进行测试。~函数loadValues(){if(dateText!=“ErrorStuff”){var div=document.getElementById('dateValue');div.innerHTML=dateText;var errorDiv=document.getElementById('error');errorDiv.innerHTML=“”;$('#dateText').val(PropertiesService.getScriptProperties().getProperty('dateColumn');}else{var div=document.getElementById('sidebarValues');div.innerHTML=“”;var errorDiv=document.getElementById('error');errorDiv.innerHTML='有错误';}