0

我有一個電子表格並正在編寫與Twitter API集成的代碼。在我的表,我有兩個文件:如何從HTML頁面獲取Code.GS文件中的文本框值

  • Code.gs
  • settingpage.html

我有code.gs即CONSUMER_KEY,CONSUMER_SECRET一些全局變量。當用戶在文本框中輸入一個值並點擊保存按鈕時,我想設置這兩個變量。

文本框放在邊欄下。使用(HtmlService.SandboxMode.IFRAME)從settingspage.html生成補充工具欄

讓我知道如果我做錯了,或者以任何其他方式設置用戶輸入的全局變量值。

Code.gs

CONSUMER_KEY = "Your key value"; 
CONSUMER_SECRET = "Your key value"; 

function onOpen() { 
    var ui = SpreadsheetApp.getUi(); 
    ui.createMenu('BOT') 
    .addItem('Setting-config','fnShowSidebar') 
    .addItem('Start', 'StartCP') 
    .addSeparator() 
    .addItem('Stop', 'StopCP') 
    .addToUi(); 
} 

function fnShowSidebar() { 
    var html = HtmlService.createHtmlOutputFromFile('settingpage') 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
     .setTitle('Welcome to TwitterBot-RWT!') 
    .setWidth(300); 

     SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showSidebar(html); 
} 

settingpage.html

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

    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css"> 

<style> 

.centerAlign { 
    vertical-align: middle; 
    width:80%; 
    margin-top:10px; 
} 

.branding-below { 
    bottom: 56px; 
    top: 0; 
} 

</style> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 

<script> 
$("#btn_save").click(function(){ 

google.script.run.withSuccessHandler(onSuccess).fn_setCustomValue(); 
}); 

function onSuccess(){ 
// Logger.log("Success!"); 
} 
</script> 

    </head> 
    <body> 
    <div class="block form-group"> 
    <label for="city">CONSUMER_KEY</label> 
    <input id="txt_CONSUMER_KEY" type="text" value="" style="width: 150px;" /> 
</div> 
    <div class="block form-group"> 
    <label for="city">CONSUMER_SECRET</label> 
    <input id="txt_CONSUMER_SECRET" type="text" value="" style="width: 150px;"> 
</div> 
<div class="block"> 
    <button id="btn_save" class="create">Save</button> <button>Cancel</button> 
    </div> 
    </body> 
</html> 

編輯:

個HTML

<button id="btn_save" class="create">Save</button> 
    <button>Cancel</button> 
    </div> 

JS:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script> 

    $(function() { 

     var buttonEl=document.getElementById("btn_save"); 
     buttonEl.addEventListener("click", myFunction); 

     function myFunction() { 
      alert ("Hello World!"); 
      var keyValue=document.getElementById("txt_CONSUMER_KEY").value; 
      var secretValue=document.getElementById("txt_CONSUMER_SECRET").value; 
      google.script.run.withSuccessHandler(onSuccess).fn_setCustomValue(keyValue,secretValue); 
     } 

     function onSuccess(){ 
      Logger.log("Success!"); 
     } 
    }); 
    </script> 

在點擊鏈接當您運行fn_setCustomValue你需要傳遞的值作爲參數我得到這個屏幕 enter image description here

回答

0

,你可以用document.getItemById()做到這一點。 東西沿着線:

google.script.run.withSuccessHandler(onSuccess).fn_setCustomValue(document.getElementById("txt_CONSUMER_KEY").value, document.getElementById("txt_CONSUMER_SECRET").value); 

隨着fn_setCustomValue()內Code.gs是沿着我想你所說

function fn_setCustomValue(key, secret){ 
    CONSUMER_KEY = key; 
    CONSUMER_SECRET = secret; 
} 
+0

線的東西,但仍然是其現在的工作。而不是使用document.getItemId(「」)已使用document.getElementbyId(「」)現在仍然解決。那麼在按鈕上單擊我打開一個新選項卡請檢查屏幕截圖上面已添加 –

+0

您是對的,當然它會是getElementById。值是屬性不是元素的方法,如果刪除括號會發生什麼?對不起,我在我的手機上寫了這篇文章,並沒有仔細檢查 –

+0

使用getElementById()後,它仍然無法正常工作。點擊按鈕打開一個新標籤,如上圖所示屏幕截圖 –