2016-01-21 27 views
0

我有一些谷歌表格應用程序腳本代碼,命中一個API和基於某些用戶輸入更新側欄中的字段。除了用於從側邊欄觸發API調用的按鈕之外,一切都按預期工作。出於某種原因,單擊該按鈕將在瀏覽器中打開一個新的空白選項卡。天然氣 - 防止按鈕點擊事件,從打開新的瀏覽器選項卡

我最好的猜測是,我在某種程度上實施了google.script.run.withSuccessHandler()不正確,但我一直無法證實這一點。任何幫助將非常感激。

Sidebar.html

這是我使用的全側邊欄文件。

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css"> 
    </head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script> 
     $(function() { 
     $('#narrative-from-selection').click(getNarrative); 
     }); 
     function getNarrative(narrative) { 
     //document.getElementById('narrative-response').innerHTML = narrative.replace(new RegExp('\r?\n','g'), '<br />'); 
     var projectName = $('#project-name').val(); 
     var templateName = $('#template-name').val(); 
     google.script.run 
      .withSuccessHandler(
      function(narrative) { 
       $('#narrative-response').html(narrative); 
      }) 
      .withUserObject(this) 
      .generateContentForSelected(projectName, templateName); 
     } 
    </script> 
    <body> 
    <div> 
    <br /> 
    <br /> 
    <form> 
     Project Name: <input type="text" name="project-name" id="project-name" onchange="google.script.run.updateProjectAndTemplateNames(this.parentNode)"><br /> 
     Template Name: <input type="text" name="template-name" id="template-name" onchange="google.script.run.updateProjectAndTemplateNames(this.parentNode)"><br /> 
     <button id="narrative-from-selection">Generate from Selection</button><br /><br /> 
     Response:<br /><br /> 
     <div id="narrative-response"></div> 
    </form> 
    </div> 
    </body> 
</html> 

Code.gs

下面是我使用(用於打API的信息被刪除,但我測試過的那件很多次,它返回完全相關功能的概述我期望它發回)。

function generateContentForSelected(projectName, templateName) { 
    // go do some API magic here 
    var narrative = "This is a test string."; 
    return narrative; 
} 

回答

0

通過大量的試驗和錯誤,我找出了導致問題的原因,但我仍然不確定爲什麼導致新標籤打開。顯然,app腳本使用表單進行異步調用的方式有點古怪。我剝離了Sidebar.html文件中的<form></form>標籤,並且所有內容都按預期工作。

如果有更好的方法來糾正這個問題,或者如果我從一開始就把這一切都弄錯了,我會很有興趣知道如何更有效地構造它。但是,我確實至少在工作。

相關問題