如何在另一页上的输入字段中插入文本

时间:2019-07-20 14:29:42

标签: javascript html dom google-apps-script google-sheets

我在Google Spreadsheet上有一个URL列表和一些信息,并设法使用Google Apps脚本打开了URL。在打开的页面上,有2个输入字段和一个确认按钮。我需要脚本从电子表格中获取信息(将其保存为变量)并将其输入到这些字段中。之后,我需要脚本单击提交按钮。

我不完全确定这将是解决方案,但我认为我需要按id获取输入字段元素,然后将变量插入其中。但是我无法做到这一点,因为getElementById()无法与Google Apps脚本一起使用。

我做了很多挖掘工作,只找到了在Google Apps脚本上使用HTML文件的解决方案。但是,我不知道这是否有助于解决此问题,老实说,我对此并不了解。我猜这只会增加不必要的步骤,因为我已经设法在另一个选项卡上打开页面。

我有第一个输入字段的ID。第二个字段与第一个字段相距一个“ Tab hit”,并且具有动态ID,因此当我循环脚本以对所有URL进行处理时,该字段将不起作用。似乎唯一的属性是aria标签(我不知道是否有帮助)。提交按钮没有ID,但具有唯一的类和type =“ submit”(我可以在inspect上看到它,但是当我在另一页上打开源代码时看不到它,不知道是否有区别)

我已经设法在另一个选项卡上打开URL并保存有关变量的信息,现在我陷入了将其插入输入字段并单击提交按钮的步骤。

到目前为止,这是我的代码:

function fulfill() {
  var rangeValues = searchRange.getValues();
  var orderId = rangeValues[604][1];
  var trackingNumber = rangeValues[604][3];
  var shippingCompany = rangeValues[604][4];
  var url = "https://someshopifystore.myshopify.com/admin/orders/" + orderId + "/fulfill_and_ship?fulfill_only=true&fulfillment_service_handle=manual&location_id=2085355564&requires_shipping=true";
  var html = "<script>window.open('" + url + "');google.script.host.close();</script>";
  var userInterface = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(userInterface, 'Open Tab');
}

OBS1:我需要通过Google表格和Google Apps脚本解决它,因为它是更广泛的解决方案的一部分。

OBS2:如果有帮助,打开的页面是Shopify的履行页面。

OBS3:我对编程还很陌生,我正在按需学习它,所以除了我专门从事的工作之外,我没有太多的背景知识。如果您不知道答案,但可以指出我的位置,也将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您想解决使用Google Apps脚本实现功能的问题,请注意以下一些基本要点:

  • 查看referenceguides,了解Apps Script HTML的用法 服务。
  • 将HTML文件绑定到脚本允许您将Javascript代码嵌入HTML文件的<script> </script>部分。
  • 您可以在这里使用Apps Script不支持的功能(例如getElementById())。
  • 要从JS部分调用Apps脚本函数,可以使用google.script.run method
  • 要手动为HTML输入字段设置值,您需要访问这些元素,例如根据他们的ID或名称。您需要检查URL的源代码,以了解如何定义和识别这些输入字段。随后,您必须触发一个提交事件。
  • 如果您改用Shopify API,则可以使用JS脚本绕过HTML文件的创建。您要做的就是选择正确的API(例如,用于创建订单的RESTful API),复制JSON请求(使其适应您的需求),然后使用UrlFetchApp.fetch()发布请求-订单请求为{{ 1}}。