Google apps script 当选中Google文档侧边栏上的单选按钮时,如何在Google文档中触发操作?

Google apps script 当选中Google文档侧边栏上的单选按钮时,如何在Google文档中触发操作?,google-apps-script,google-docs,Google Apps Script,Google Docs,我有一个谷歌文档和一些文本,我已经创建了一个边栏。我想要的是,当有人高亮显示一个单词,然后使用侧边栏中的单选按钮单击某个选项时,该单词将根据所选选项以某种颜色高亮显示。 我已经有了单选按钮的侧边栏,使用了HtmlService,我还有一些谷歌应用程序脚本,可以突出显示这个词。 我正在努力寻找一种方法来记录点击了哪个单选按钮,然后可以用它来决定选择哪种颜色。 我已经设法在HTML代码中使用Javascript触发操作,但我无法将其与突出显示单词的函数链接。我一直试图在选择按钮时设置一个变量,然后在

我有一个谷歌文档和一些文本,我已经创建了一个边栏。我想要的是,当有人高亮显示一个单词,然后使用侧边栏中的单选按钮单击某个选项时,该单词将根据所选选项以某种颜色高亮显示。 我已经有了单选按钮的侧边栏,使用了HtmlService,我还有一些谷歌应用程序脚本,可以突出显示这个词。 我正在努力寻找一种方法来记录点击了哪个单选按钮,然后可以用它来决定选择哪种颜色。 我已经设法在HTML代码中使用Javascript触发操作,但我无法将其与突出显示单词的函数链接。我一直试图在选择按钮时设置一个变量,然后在If语句中使用该变量来决定添加什么颜色。 这是我到目前为止编写的GAS代码和HTML。 如果有人对遗漏的内容有任何想法,他们将不胜感激。 谢谢

下面是文件“Index.html”


突出显示一个区域并单击下面的代码以在文本中突出显示该区域

语法
词汇
词序

添加
下面是函数highlightText,如果选中,它将突出显示单词

function highlightText() {
  var selection = DocumentApp.getActiveDocument().getSelection();
  if (selection) {
  var elements = selection.getRangeElements();
  for (var i = 0; i < elements.length; i++) {
  var element2 = elements[i];

// Only modify elements that can be edited as text; skip images and other non-text elements.
   if (element2.getElement().editAsText) {
   var text = element2.getElement().editAsText();
   if (element2.isPartial()) {
       text.setBackgroundColor(element2.getStartOffset(), element2.getEndOffsetInclusive(), "#FFFD4C");
       } else {
       text.setBackgroundColor("#FFFD4C");       
    }
   }
  }
 }
}
函数highlightText(){
var selection=DocumentApp.getActiveDocument().getSelection();
如果(选择){
var elements=selection.getRangeElements();
对于(var i=0;i
添加一个onclick事件,该事件通过对触发元素的引用触发客户端JavaScript函数。然后使用您选择的颜色调用服务器端函数

单选按钮元素:

<form>
   <input onclick="chngColor(this)" type="radio" name="error" id="GrammarBut"/> Grammar<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="VocabBut"/> Vocabulary<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="WOBut"/> Word order<br />
   <br />

然后,只需更改服务器端函数,以接受一个参数来设置颜色,或者您需要执行的任何其他操作

添加一个onclick事件,该事件通过对触发元素的引用触发客户端JavaScript函数。然后使用您选择的颜色调用服务器端函数

单选按钮元素:

<form>
   <input onclick="chngColor(this)" type="radio" name="error" id="GrammarBut"/> Grammar<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="VocabBut"/> Vocabulary<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="WOBut"/> Word order<br />
   <br />

然后,只需更改服务器端函数,以接受一个参数来设置颜色,或者您需要执行的任何其他操作

格尔内奥,真是太棒了!非常感谢你!对于其他有类似问题的读者来说,在HTML文档中,我将按钮HTML和chngColor函数放在了标签之间。然后在气体部分,我有highlightText函数。Gerneio,工作非常出色!非常感谢你!对于其他有类似问题的读者来说,在HTML文档中,我将按钮HTML和chngColor函数放在了标签之间。然后在GAS部分,我有highlightText函数。
<form>
   <input onclick="chngColor(this)" type="radio" name="error" id="GrammarBut"/> Grammar<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="VocabBut"/> Vocabulary<br />
   <input onclick="chngColor(this)" type="radio" name="error" id="WOBut"/> Word order<br />
   <br />
function chngColor(element)
{
  var id = element.id;
  var color;

  if(id == "GrammerBut")
    color = "the color you need";
  else if(id == "VocabBut")
    color = "next color";
  else if(id == "WOBut")
    color = "final color";

  google.script.run.highlightText(color);
}