如何重定向到 URL Google Sheets Apps 脚本

问题描述 投票:0回答:2

大家早上好。 我有一个包含 URL 的电子表格。 有人告诉我,如果我使用以下内容,我可以为工作表中的按钮创建一个脚本,而不是保持链接可见:

function redirectToUrl (){
var url = SpreadsheetApp.getActiveSpreadsheet().getRange("A4").get value();
window.location.href = url
}

这会返回一个错误: ReferenceError:窗口未定义 重定向到网址@代码:3

我知道如何找到错误是什么或如何修复它以使按钮启动在单元格 A4 中找到的 URL。

调试显示变量: 当地的 URL:A4中存在的URL(在工作表中选择时会打开新窗口)

没有脚本经验,只是想要一个按钮来启动我的成人 IT 课程的 URL。

google-apps-script google-sheets http-redirect
2个回答
0
投票

您需要添加如下所示的脚本,并通过插入绘图然后将脚本分配给绘图来添加按钮。

我建议您查看 Google Apps 脚本:初学者指南 以基本了解其工作原理。

下面的脚本应该可以工作,要查看它的实际效果,请复制我创建的示例文件:打开 URL 示例并转到“扩展”->“应用程序脚本”。

/**
* @OnlyCurrentDoc
*/
function openUrl() {
var url = SpreadsheetApp.getActive().getActiveSheet().getRange("A4").getValue();
var html = HtmlService.createHtmlOutput(
  '<!DOCTYPE html><html><script>'
  +'window.close = function(){window.setTimeout(function() 
  {google.script.host.close()},9)};'
  +'var a = document.createElement("a"); a.href="'+url+'"; 
  a.target="_blank";'
  +'if(document.createEvent){'
  +'  var event=document.createEvent("MouseEvents");'
  +'  if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1). 
  {window.document.body.append(a)}'                          
  +'  event.initEvent("click",true,true); a.dispatchEvent(event);'
  +'}else{ a.click() }'
  +'close();'
  +'</script>'
// Offer URL as clickable link in case above code fails.
  +'<body style="word-break:break-word;font-family:sans-serif;">Failed to 
  open automatically.  Click below:<br/><a href="'+url+'" target="_blank" 
  onclick="window.close()">Click here to proceed</a>.</body>'
  +'<script>google.script.host.setHeight(55);google.script.host.setWidth(410) 
  </script>'
  +'</html>')
.setWidth( 90 ).setHeight( 1 );
SpreadsheetApp.getUi().showModalDialog( html, "Opening ..." );
}

0
投票

是否可以调整功能以在新窗口而不是新选项卡中打开网址?

这是一个灵活的功能;只是不确定如何进行微小的调整!

提前致谢!

© www.soinside.com 2019 - 2024. All rights reserved.