有没有一种方法可以在不显示对话框弹出的情况下编写可单击按钮链接的脚本?

时间:2019-09-05 15:53:33

标签: javascript google-sheets

我将脚本附加到按钮上,单击后它将打开一个全新的标签,指向脚本中所需的链接。但是,我似乎无法摆脱使我与链接交互并变得多余的对话框。一个人将如何实现这一目标?

我研究了e.preventDefault()(window).blur(function(),看看它们是否可以引导我朝正确的方向前进,但仍然会弹出一个对话框。

function openForm(){

  var html = "<script> window.open('Any Link In Here');</script>";

}

我希望通过单击我的按钮来实现此目的,它只会打开一个全新的标签,指向我想要的任何所需链接,但是什么也没发生。

2 个答案:

答案 0 :(得分:0)

为什么不简单使用:

function openForm(){
  var html = "<script> window.open('Any Link In Here', '_blank');</script>";
}

答案 1 :(得分:0)

我找到了答案。感谢@Tedinoz帮助我并找到此链接Google Apps Script to open a URL

在此链接中,“ TheMaster”提供了一个很好的答案。这里有两件事,HTML源代码和javascript。在HTML中的var winRef = window.open(url1);在另一个选项卡中打开URL,但是会打开一个对话框。 下一行显示

winRef ? google.script.host.close() : window.alert('Allow popup to redirect you to '+url1) ;

这似乎是关闭了Google工作表中的对话框,该对话框似乎是此部分

winRef ? google.script.host.close()

简而言之,当使用Javascript为您设置HTML文件的名称时,请确保JavaScript上的第6行反映的名称与HTML源名称相同。

HtmlService.createHtmlOutputFromFile('openUrl').setHeight(50), // 'openUrl is the name of the HTML source, name this whatever. 

完成后,转到您的按钮,并使用javascript函数modalUrl附加您命名的脚本。

这是完整的脚本。如果“ TheMaster”曾经看到过此消息,请告诉我是否钉了我上面所说的话。

openUrl.html

<!DOCTYPE html>
<html>
  <head>
   <base target="_blank">
    <script>
     var url1 ='https://stackoverflow.com/a/54675103';
     var winRef = window.open(url1);
     winRef ? google.script.host.close() : window.alert('Allow popup to redirect you to '+url1) ;
     window.onload=function(){document.getElementById('url').href = url1;}
    </script>
  </head>
  <body>
    Kindly allow pop ups</br>
    Or <a id='url'>Click here </a>to continue!!!
  </body>
</html>

code.gs

function modalUrl(){
  SpreadsheetApp.getUi()
   .showModalDialog(
     HtmlService.createHtmlOutputFromFile('openUrl').setHeight(50),
     'Opening StackOverflow'
   )
}