簡體   English   中英

如何使用 gs 文件中的變量作為 Google Apps 腳本中 HTML 文件的輸入值?

[英]How can I use the variable in the gs file as the input value in the HTML file in Google Apps script?

testGetFieldName function 的變量 fieldName 位於 Code.gs

我想將它插入到 index.html 文件的輸入值中。

但是,如果我使用 testSetValue 打開 Sidebar,該值就會顯示為 undefiend。

我怎樣才能讓變量'Account'產生價值?

我寫的代碼如下。

//code.gs
function testGetFieldName(){
  var fieldName = 'Account';
  return fieldName;
}

function testSetValue(){
  var html = HtmlService.createTemplateFromFile('index');
  var output = html.evaluate()
      .setTitle('MySidebar')
      .setWidth(400)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  SpreadsheetApp.getUi().showSidebar(output);
}

index.html

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
</head>

<body>
  <input type="text" id ='textValue' name='textValue' value=''/>
   <script>
     document.getElementById('textValue').setAttribute('value',google.script.run.testGetFieldName());
   </script>
 </body>
</html>

在您的腳本中,如何進行以下修改?

Google Apps 腳本方面:

從:

var html = HtmlService.createTemplateFromFile('index');
var output = html.evaluate()

至:

var html = HtmlService.createTemplateFromFile('index');
html.value = testGetFieldName();
var output = html.evaluate()

HTML 側:

從:

document.getElementById('textValue').setAttribute('value',google.script.run.testGetFieldName());

至:

document.getElementById('textValue').setAttribute('value', '<?= value ?>');

筆記:

  • 如果你想使用google.script.run ,那么下面的修改呢?

    •  document.getElementById('textValue').setAttribute('value',google.script.run.testGetFieldName());
    •  google.script.run.withSuccessHandler(e => { document.getElementById('textValue').setAttribute('value', e); }).testGetFieldName();

參考:

通常,最好將 HTML、CSS、JavaScript 文件分開。

參考

HtmlService 最佳實踐

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM