Search code examples
javascriptformsgoogle-apps-scriptweb-applicationsform-submit

Google Script - Sidebar button keeps opening a new tab


I'm creating an extremely basic script to assist me in one of my google spreadsheets.

I've successfully got a sidebar showing, with a few buttons (which function). However, whenever I click on one of those buttons, it also opens up a new tab, with a URL something like: "https://n-lx3mdv5ls3mdgglsq226llilxd2m4owxy72y3fy-1lu-script.googleusercontent.com/userCodeAppPanel?"

Even if the button is left without any functionality, this still occurs.

Here's an example of the 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>

How can I stop this new tab from opening every time?


Solution

  • Issue:

    • <button> type, if not specified defaults to type=submit. So, The form automatically submits the data to the server. This is not preferable in a iframe.

    Solution:

    • Explicitly specify button type as button. <button type='button'>
    • Use event.preventDefault() to prevent automatic form submission.

    References: