Executando verificação de segurança...
1

Caramba, eu não sabia que podia já mapear o dialog no onclick kkkk.
Eu faria de um jeito mais 'trabalhoso':

HTML:

<dialog id="dialog-box">
    <!-- Contéudo da caixa de dialog -->
    <button onclick="closeModal()">Close</button>
</dialog>
<button onclick="showModal()">Show</button>
<script src="script.js"></script>

JavaScript:

const dialog = document.getElementById('dialog-box');

function showModal() {
  dialog.showModal()
}

function closeModal() {
  dialog.close()
}

Como eu disse, mais 'trabalhoso'.

Carregando publicação patrocinada...
1

Opa, belza?

Apesar de parecer mais "trabalhoso", eu prefiro dessa forma como vc fez, chamando o script.js na página.

Inclusive adicionando os eventos por lá, em vez de usar o atributo onclick="" dentro do HTML.

Prefiro assim pois separa melhor as responsabilidades:

  • HTML: coloca as coisas na tela
  • Javascript: cria os comportamentos

No caso:

<dialog id="dialog-box">
    <!-- Contéudo da caixa de dialog -->
    <button class="close-button">Close</button>
</dialog>
<button class="show-button">Show</button>
<script src="script.js"></script>
const dialog = document.getElementById('dialog-box');
const closeButton = document.querySelector('.close-button');
const showButton = document.querySelector('.show-button');

closeButton.onclick = () => dialog.close();
showButton.onclick = () => dialog.showModal();