Jak zrobić kod uruchomienia przycisku HTML?

Co próbuję zrobić, jest umieścić przycisk <button> Otwórz nową stronę w about:blank i mieć tam kod w <textbox>.

Nie wiem, jak utworzyć stronę about:blank mieć kod. Próbowałem:

<button src="about:blank" target"_blank" data-uri="(I don't know what to put here or if this is even correct)">Click to run code</button>

Próbuję wdrożyć go z HTML i JS. Jeśli ktoś może pomóc, byłoby niesamowite!

-1
user14227404 7 październik 2020, 19:40

1 odpowiedź

Najlepsza odpowiedź

Powinno to działać w prawie wszystkich przeglądarkach (testowanych zarówno w FF, jak i Chrome):

<!-- Your link !-->
<a id="externalLink" href="#/">Click to run the code</a>

<script>
  const el = document.getElementById('externalLink');

  // Create a content for a new page with a script in it
  const newPageContent = `
  <!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <title></title>
  </head>
  <body>
    <script>alert('Hello World!')<\/script>
    Hello world! 
  </body>
  </html>
  `;

  // Listen on "click" event
  el.addEventListener('click', (e) => {
    e.preventDefault();

    // Create a new window on click
    const w = window.open('', '_blank');

    // Write your content to it
    w.document.write(newPageContent);
  });
</script>

Chociaż nie byłem w stanie sprawić, że href="data:text/html" działa poprawnie. Zakładam, że powinno być zabronione przez pewne zasady bezpieczeństwa przeglądarki.

1
zinovyev 7 październik 2020, 20:57