Javascript 有没有办法在不显示弹出对话框的情况下编写可点击按钮链接的脚本?
我将脚本附加到一个按钮上,单击该按钮,它将打开一个全新的选项卡,指向脚本中所需的链接。然而,我似乎无法摆脱对话框,它使我与我的链接交互并变得多余。如何做到这一点 我已经查看了Javascript 有没有办法在不显示弹出对话框的情况下编写可点击按钮链接的脚本?,javascript,google-sheets,Javascript,Google Sheets,我将脚本附加到一个按钮上,单击该按钮,它将打开一个全新的选项卡,指向脚本中所需的链接。然而,我似乎无法摆脱对话框,它使我与我的链接交互并变得多余。如何做到这一点 我已经查看了e.preventDefault()和(window).blur(function()),看看这些是否会引导我走向正确的方向,但仍然会引发一个对话框 function openForm(){ var html = "<script> window.open('Any Link In Here');</
e.preventDefault()
和(window).blur(function()
),看看这些是否会引导我走向正确的方向,但仍然会引发一个对话框
function openForm(){
var html = "<script> window.open('Any Link In Here');</script>";
}
函数openForm(){
var html=“window.open(‘此处的任何链接’);”;
}
我希望通过点击我的按钮,它只会打开一个全新的标签,指向我想要的任何链接,但是什么都没有发生。为什么不简单地使用:
函数openForm(){
var html=“window.open('此处的任何链接','_blank');”;
}
我找到了答案。感谢@Tedinoz帮助我找到了这个链接 在这个链接中,“TheMaster”提供了一个很好的答案。这里有两个功能,一个HTML源代码和一个javascript。在HTML中是
var winRef=window.open(url1);
,它在另一个选项卡中打开URL,但是会打开一个对话框。
下一行显示
winRef?google.script.host.close():window.alert('允许弹出窗口将您重定向到'+url1);
这样做的目的似乎是关闭google sheet中的对话框,该对话框显示在本节中
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
命名的脚本
这是完整的剧本。如果“大师”看到了这一点,请让我知道我是否正确理解了上面的话
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>
使用您提供的函数时,我收到一个错误,显示“ReferenceError:Window未定义”在我点击我的按钮后。知道这可能是什么吗?嗯,我没有看到google sheets标签。你在google doc中创建了这个脚本?有些奇怪,所以使用更新的脚本似乎很好,但是,一旦我将它附加到按钮上,我会在顶部收到通知,说脚本完成了,但是,它不会打开任何链接。这是我的工作表。请申请许可,因为这是一个工作帐户。
function modalUrl(){
SpreadsheetApp.getUi()
.showModalDialog(
HtmlService.createHtmlOutputFromFile('openUrl').setHeight(50),
'Opening StackOverflow'
)
}