【问题标题】:How to open a URL in google apps script?如何在谷歌应用程序脚本中打开 URL?
【发布时间】:2017-12-31 20:44:50
【问题描述】:

[https://docs.google.com/spreadsheets/d/1owEwaLhddXvSfI11AA7ZWmuQh4oeKoVSZkiu9LSlRLU/edit?usp=sharing]

这是我的工作表,我在其中手动填写第一行的开始时间。我第一次手动打开链接,并将我对“Purchasable”列的判断标记为Y/N。一旦我标记我的判断,我希望“结束时间”列自动填充,并且下一行的“URL”列中的链接自动打开并重复相同的系列。是否可以通过应用脚本执行此任务,因为我需要在 google 电子表格上执行此任务。

if(r.getColumn()==4){
var endCell=r.offset(0,4);
if(endCell.getValue()==='')
var date=Utilities.formatDate(new Date(),timezone,timestamp_format);
endCell.setValue(date);
var startCell=r.offset(1,-1);
startCell.setValue(date);

现在,当我填写可购买的列时,这可能会填写样本的开始和结束时间,但我无法弄清楚如何在不点击的情况下打开下一个 URL ??

【问题讨论】:

  • docs.google.com/spreadsheets/d/… 这是我的工作表。
  • 您的链接无法访问。如果可能,您应该将数据作为文本直接发布到您的帖子中,而不是发布链接。
  • 现在可以访问了。感谢您的提醒
  • 我无法访问它。你能再检查一下你的设置吗?
  • 您不能直接从服务器端应用程序脚本代码打开新的浏览器选项卡或浏览器窗口。您可以使用打开一个对话框的 On Edit 触发器,该对话框将运行“onload”命令,然后打开一个新的浏览器选项卡,然后关闭对话框。这是唯一的方法。

标签: google-apps-script google-sheets


【解决方案1】:

我有这个问题的非编码解决方案,只需点击几下。

在此sheet I have 中,将公式 =now() 放在结束时间列中。当您更改是或否列时,结束时间列将自动更新。您需要做的就是单击该行的时间戳,按 ctrl+c 复制,按 ctrl+shift+v 粘贴。这将只粘贴时间,而没有使时间戳永久化的公式。

【讨论】:

  • 有没有可以自动打开网址的命令?
【解决方案2】:

正如 Sandy 所说,“您不能直接从服务器端 Apps 脚本代码打开新的浏览器选项卡或浏览器窗口。” 据我所知,唯一的解决方案是打开一个对话框,从而自动打开 URL。但是在打开 URL 之前,您会在电子表格 UI 中看到对话框的弹出窗口。

代码.gs

function open_dialog()
{
    var temp_dialog = HtmlService.createHtmlOutputFromFile("temp_dialog").setTitle("everw");
    SpreadsheetApp.getUi().showModalDialog(temp_dialog,"Name");
}

temp_dialog.html

<html>
  <a href="Replace_the_url" id="link" target="_blank" ></a> 
</html>
<script>
  document.getElementById("link").click();
  google.script.host.close();
</script>

【讨论】:

  • express.google.com/product/15004630315996151317_0_8175035?eflags=LOCATION_SERVICE_USER_TAGS:POGXONBOARDING|POGX|WALMART 这是不是通过脚本打开的链接,但在直接从工作表中单击时会打开。它显示 ERROR 400。你能帮忙吗?
  • 已在代码中进行了一些编辑。您可以通过将“href”值替换为您的网址再试一次吗。
  • 错误 400。在此服务器上找不到请求的 URL。这是因为谷歌加强了安全性吗?否则,当从电子表格中“单击”时,该 URL 会在浏览器中正常打开。
  • 我可以知道您从哪个上下文调用此方法。我尝试时没有收到任何此类错误,并且代码工作正常。
  • 我通过将此链接放入电子表格中的 onClick 按钮调用它。我也尝试过 方法并得到了相同的结果。但是该链接在 Logger 中显示得非常正确。 Link= "express.google.com/product/15004630315996151317_0_8175035?ef‌​lags=LOCATION_SERVIC‌​E_USER_TAGS:POGXONBO‌​ARDING|POGX|WALMART" 尝试用你的方法打开它!
【解决方案3】:

我提供了下面的代码。您可以在 Google 表格等中的脚本上添加此代码。向其添加触发器或按钮。 一旦脚本被触发,它将打开一个带有所需 URL 的浏览器选项卡。

function openNew() {
 var js = " \ 
    <script> \
     window.open('**https://exmaple.com**','_blank','width=800, height=600'); \
}) \
    </script> \
  ";
 var html = HtmlService.createHtmlOutput(js)
    .setHeight(10)
    .setWidth(100);
 Logger.log(html);
 SpreadsheetApp.getUi().showModalDialog(html, 'Now Loading'); // If you use this on Spreadsheet
}

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 2022-01-03
    • 2013-08-11
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多