以编程方式创建的按钮onclick会生成非法值错误

时间:2019-05-10 15:22:09

标签: javascript function google-sheets sidebar

在google脚本边栏中,我在html页面中有javascript,该html页面在边栏底部创建了一个按钮。单击该按钮会在控制台中生成“由于属性中的非法值而失败:0”。当按钮被硬编码时,相同的功能起作用。在开发人员屏幕中,硬编码的按钮文本和javascript生成的按钮代码看起来是相同的。

我尝试了几种创建按钮并将其放置在页面底部的方法,包括移动函数的位置和创建按钮的函数调用,因为创建按钮时会影响功能。

用于填充边栏的html的简化示例。

<html>
<head>
<script>

   makeButton();

   function makeButton(){
   var buttontext = "Click Me";
   var func = "AddTalent(this.Parentnode)";
   var scriptcall = "google.script.run."+func";
   var outputb2 = "<p 'align=right'>"+ "<input type='button' 
   value='"+buttontext+"' onClick='"+scriptcall+"'>" + "</input>" +"</p>";
   document.getElementById("processButton").innerHTML = outputb2;
   }

</script>
</head>
<body>
....
1 or more Dropdown
1 or more sets of checkboxes
.....
<div id="processButton"></div>
</body>
</html>

我的目标是使用javascript在Google电子表格侧边栏中生成html兼容按钮,并将其放置在div或span内,当单击该div或span时,将选择选项从一个或多个下拉框和复选框组传递给谷歌脚本功能。

感谢您的协助。

1 个答案:

答案 0 :(得分:0)

您的代码中存在语法错误,建议您使用模板字符串使代码更具可读性。但是我不知道这是否可以解决您遇到的错误。

function makeButton(){
  var buttontext = "Click Me";
  var func = "AddTalent(this.Parentnode)";
  var scriptcall = `google.script.run.${func}`;

  var outputb2 = `<p 'align=right'><input type='button' 
  value="${buttontext}" onClick="${scriptcall}"></input></p>`;

  document.getElementById("processButton").innerHTML = outputb2;
  }