【问题标题】:How to insert text into an input field on another page如何在另一个页面的输入字段中插入文本
【发布时间】:2019-07-20 14:29:42
【问题描述】:

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

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

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

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

我已经设法在另一个选项卡上打开 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:我对编程还很陌生,而且我是按需学习的,所以除了我专门从事的工作之外,我没有太多的背景知识。如果您不知道答案但可以指出我的某个地方,也将不胜感激。

【问题讨论】:

  • 改用shopify api。
  • 感谢您的建议。我想了想,这将是我的下一个选择。只是我对 API 的工作原理一无所知,所以我想要一个 Google Apps 脚本解决方案,直到我学会使用 API 来做。
  • 您可以通过 Google Apps 脚本连接 api。它会比你目前的方法容易得多。阅读 api 文档。

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


【解决方案1】:

如果您确实想使用 Google Apps 脚本解决您的功能,这里有一些基本要点:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2019-09-28
    • 2020-03-14
    • 2021-06-25
    • 2020-05-24
    • 2018-06-18
    • 1970-01-01
    相关资源
    最近更新 更多