javascript - 구글 스크립트 사이드 바 버튼은 새 탭을 열고 유지




forms google-apps-script (2)

내 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>

이 탭이 매번 열리지 않게하려면 어떻게합니까?


발행물:

  • <button> 유형이 지정되지 않은 경우 기본값은 type=submit 입니다. 따라서 양식은 자동으로 데이터를 서버에 제출합니다. 이것은 iframe에서 바람직하지 않습니다.

해결책:

  • 단추 유형을 단추로 명시 적으로 지정하십시오. <button type='button' >
  • 자동 양식 제출을 방지하려면 event.preventDefault() 를 사용하십시오.

참고 문헌 :


귀하의 문제를봤을 때, 나는 이것이 <form> 때문인 것으로 생각했습니다. 그래서 나는 다음과 같은 수정을 제안했다.

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

  2. <base target="_top"><base target="_self"> .

  3. <base target="_top"> 제거하십시오.

노트 :

  • 나는 @ TheMaster의 대답 이 더 유용한 정보라고 생각한다.

참고 문헌 :





form-submit