Google脚本-侧边栏按钮不断打开新标签页

时间:2018-12-18 01:10:48

标签: javascript forms google-apps-script web-applications google-sheets

我正在创建一个非常基本的脚本,以协助我完成一个Google电子表格。

我已经成功显示了一个带有一些按钮(功能)的侧边栏。但是,每当我单击这些按钮之一时,它也会打开一个新标签,其URL类似于:“ https://n-lx3mdv5ls3mdgglsq226llilxd2m4owxy72y3fy-1lu-script.googleusercontent.com/userCodeAppPanel?”

即使按钮没有任何功能,这种情况仍然会发生。

这是html的示例:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
    <!-- The CSS package above applies Google styling to buttons and other elements. -->

    <style>
    
    </style>
  </head>
  <body>
    <div class="sidebar">
      <form>
       <div class="block" id="buttons">
          <button id="unindent">Unindent</button>
          <button id="indent">Indent</button>
          <button id="asdgdgasg">Test</button>
        </div>
      </form>
    </div>
  </body>
</html>

如何阻止每次打开新标签页?

2 个答案:

答案 0 :(得分:4)

问题:

  • <button>类型(如果未指定)默认为type=submit。因此,表单自动将数据提交到服务器。在iframe中,这不是可取的。

解决方案:

  • 将按钮类型明确指定为按钮。 <button type='button'>
  • 使用event.preventDefault()阻止自动提交表单。

参考文献:

答案 1 :(得分:2)

当我看到您的问题时,我认为这是由于<form>造成的。所以我提出了以下修改。

  1. <form>修改为<form onsubmit="event.preventDefault()">

  2. <base target="_top">修改为<base target="_self">

  3. 删除<base target="_top">

注意:

参考文献: