html - 传输或处理此请求时出错。错误代码 = 10,路径 =/wardeninit

标签 html google-apps-script web-applications google-sheets

我正在尝试将对象(工作表行的内容)传递给应用程序脚本模板。您可以在屏幕截图中看到该行。

enter image description here

我在应用程序脚本中的函数包含:

var sendableRows = rows.filter(function (row) { //ONLY CHECKED ROWS.
  return row['Index'] == true;
});  
var sendableRow = sendableRows[0];
Logger.log('sendableRow '+ JSON.stringify( sendableRow));

var html = HtmlService.createTemplateFromFile('RowPopup');
html.row = JSON.stringify(sendableRow);
var h =html.evaluate();

SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
  .showModalDialog(h, 'Create Documents');

记录器语句产生:
 sendableRow {"Index":true,"Timestamp":"2019-02-12T21:09:14.000Z","FROM":222222,"CONVERSATION":"THIS IS A TEST","ME":"","relativeRow":14,"absoluteRow":15}

我的 Rowpopup.html 是:
<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <script>
    // Prevent forms from submitting.
    function preventFormSubmit() {
      var forms = document.querySelectorAll('forms');
      for (var i = 0; i < forms.length; i++) {
        forms[i].addEventListener('submit', function(event) {
          event.preventDefault();
        });
      }
    }
    window.addEventListener('load', preventFormSubmit);

    function handleFormSubmit(formObject) {
      // the output from form goes to processDocBuildHtml
      google.script.run
          .withSuccessHandler(updateUrl)
          .processRowPopupHTML(formObject);
    }

    function updateUrl(url) {
      var div = document.getElementById('output');
      div.innerHTML = '<a href="' + url + '">Sent!</a>';
    }
  </script>
</head>

<body>
  <form id="myForm" onsubmit="handleFormSubmit(this)">

    <div>
      <label for="optionList">Click me</label>
      <select id="optionList" name="email">
        <option>Loading...</option>    
      </select>
    </div>

    <br>
    <div>
    </div>

    <br>
    <div>
      <textarea name="message" rows="10" cols="30">
The cat was playing in the garden.
      </textarea>
    </div>
    <div id="textboxes"></div>

    <div id="insert"></div>

    <input type="submit" value="Submit" />
  </form>

  <div id="output">
  </div>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  <script src="//rawgithub.com/indrimuska/jquery-editable-select/master/dist/jquery-editable-select.min.js"></script>
  <link href="//rawgithub.com/indrimuska/jquery-editable-select/master/dist/jquery-editable-select.min.css" rel="stylesheet">

  <script>
  function getConversations() {
    var jsonRow = <?= row ?>; //PASSED IN JSON
    console.log('row');
    var myObj = JSON.parse(jsonRow);
    console.log(myObj['CONVERSATION']);

    return myObj['CONVERSATION'];
  }
  </script>
</body>

当我运行它时,我看到:

enter image description here

这显示了“ jail 长”的一些问题。

此外,我没有看到输出到控制台的预期数据:
       console.log('row');
       var myObj = JSON.parse(jsonRow);
       console.log(myObj['CONVERSATION']);

我究竟做错了什么?

最佳答案

您的客户端代码从不调用 getConversations ,这就是您在控制台上看不到它的原因。在执行此操作的许多方法中,您可以通过在 <script> 之间添加以下内容来添加一个 IIFE 来调用该函数。标签

(function (){getConversations()}());

另一方面,即使使用最简单的代码,Chrome 开发人员工具控制台上也会出现所引用的错误消息,如下所示

function myFunction(){
  var html = HtmlService.createHtmlOutputFromFile('index');
  SpreadsheetApp.getUi().showModalDialog(html, 'Test')
}

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

所以不是你,是谷歌

关于html - 传输或处理此请求时出错。错误代码 = 10,路径 =/wardeninit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749441/

相关文章:

google-apps-script - 如何实现日期选择器?

performance - 什么时候优化真的值得花时间在它上面?

web-applications - 在 Haskell 中编写 Web 应用程序的最简单方法是什么?

html - rotativa 不在 SSL 上提供页眉或页脚

javascript - 如何使用 Google Apps 脚本通过 USPS API 获取国内运费?

html - 将 CSS 格式应用于 font-weight :bold 的每个实例

javascript - 通过搜索/比较自动增加值并匹配 Google Sheets 脚本中的两列

javascript - 在 Mobile Safari 下拉列表项选择框上使用 'Next' 时选择/下拉的 onchange() JS 事件的奇怪行为

html - 我们可以在 css 中创建一个像圆弧一样的半月吗?

javascript - 在 Ajax 调用后将值设置为 parent 的 parent 的 child 的 sibling