繁体   English   中英

如何从Google Apps脚本HTML Google Site Gadget中的JavaScript打开URL链接

[英]How to open a URL link from JavaScript inside a Google Apps Script HTML Google Site Gadget

我已经在Google Apps脚本中编写了一个HTML(非UI)小工具,可以嵌入到Google网站中。 小工具显示一个下拉菜单,其中包含URL /显示名称值/文本对的选项。

我想在小工具中放置一个按钮,以打开一个与所选URL相对应的新窗口。 但是,基本上,我执行时会收到“对象不包含'打开'方法”错误

window.open(url);

有没有解决的办法? 我可以(并已经)使用锚定标签创建了可以成功打开其他窗口的小工具,但是似乎不允许通过javascript执行相同的操作。

任何完成功能的都可以。 基于jQuery的解决方案会很棒。

谢谢。

由于进行了Caja的清理,因此不支持所有javascript函数,因此无法在App Script中打开新窗口。

在App Script中显示弹出窗口的解决方法是使用覆盖窗口(从技术上讲不是弹出窗口,但看起来像弹出窗口),如App Script支持的jQuery模态对话框。

http://jqueryui.com/dialog/#modal-form

但是,App脚本中不支持iframe标签,因此,在iframe标签的帮助下尝试在模式窗口中打开url无效。

您可以通过以下链接在App Script中阅读有关这些限制的更多信息:

https://developers.google.com/apps-script/guides/html/restrictions **

希望能帮助到你!

您可以使用HTMLService在对话框中运行window.open()JS直接打开链接。

这是一个演示表 (请复制一份以查看脚本)。

openNewWindow()被分配给按钮。

代码gs:

function openNewWindow() {

  var htmlString = 
    '<div>' + 
      '<input type="button" value="Close" onclick="google.script.host.close()" />' + 
    '</div>' +
    '<script>window.open("http://www.google.com")</script>';

  var htmlOutput = HtmlService
    .createHtmlOutput(htmlString)
    .setSandboxMode(HtmlService.SandboxMode.IFRAME)
    .setHeight(60);

  SpreadsheetApp
    .getUi()
    .showModalDialog(htmlOutput, 'Opening New Window...');  
}

由于进行了caja消毒,因此无法做到这一点。 以下选项将不起作用。

1)jquery-$(“#some_link_id”)。click()2)javascript-window.open,window.href等...

唯一的解决方法,但我想这不适合您的问题是使用target =“ _ blank”创建链接以打开新窗口,但是正如我所说,无法通过javascript / jquery单击这些链接。

<a href="http://www.google.com" id="my_link" class="abc" target="_blank">My Link</a>

我能够使用表格来实现。 提交后,将表单的操作设置为所需的URL,该URL由选择框中的所选项目确定。

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $('document').ready(function(){
       $('#yourForm').attr('onsubmit',null); //set onsubmit to Null for NATIVE Caja sandboxmode

       $('#yourForm').submit(function(){
          var val = $('#yourSelect').val();  //get value of select box
          $('#yourForm').attr('action',val); //set action of form
       });
    });
    </script>
    <div>
    <select id="yourSelect">
       <option value="https://www.google.com">Google</option>
       <option value="https://www.bing.com">Bing</option>
    </select>

    <form id="yourForm" method="get" target="_blank" action="">
    <input type="submit" value="Open Selected">
    </form>

    </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM