Executar codi JavaScript associat a un event: detectar canvis a pàgines web.

Codi HTML original
<!DOCTYPE html>
<html lang="ca">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <title>Web amb Menú i Iframe</title>
            <style>
            body {
                font-family: Arial, sans-serif;
                margin: 0;
                display: flex;
                flex-direction: column;
                height: 100vh;
            }

            header {
                background-color: #333;
                color: white;
                padding: 1rem;
                text-align: center;
            }

            nav {
                display: flex;
                flex-direction: column;
                background-color: #444;
                color: white;
            }

            .menu-nivell-1 {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                background-color: #444;
            }

            .menu-nivell-1 > div {
                position: relative;
                margin: 0.5rem;
                cursor: pointer;
            }

            .menu-nivell-2 {
                display: none;
                position: absolute;
                top: 100%;
                left: 0;
                background-color: #555;
                min-width: 150px;
                z-index: 1;
            }

            .menu-nivell-2 div {
                padding: 0.5rem;
                cursor: pointer;
            }

            .menu-nivell-2 div:hover {
                background-color: #666;
            }

            .menu-nivell-1 > div:hover .menu-nivell-2 {
                display: block;
            }

            iframe {
                flex: 1;
                width: 100%;
                border: none;
            }

            @media (max-width: 768px) {
                .menu-nivell-1 {
                    flex-direction: column;
                    align-items: stretch;
                }

                .menu-nivell-1 > div {
                text-align: center;
                }
            }
        </style>
        <script src="algoritmia/comunicador.js"></script>
    </head>
    <body>
        <header>
            <h1>Pàgina amb Menú i Iframe</h1>
        </header>

        <nav>
            <div class="menu-nivell-1">
                <div>
                Secció 1
                    <div class="menu-nivell-2">
                        <div onclick="canviaIframe('https://www.example.com')">Pàgina 1.1</div>
                        <div onclick="canviaIframe('https://www.wikipedia.org')">Pàgina 1.2</div>
                    </div>
                </div>
                <div>
                Secció 2
                    <div class="menu-nivell-2">
                        <div onclick="canviaIframe('https://www.mozilla.org')">Pàgina 2.1</div>
                        <div onclick="canviaIframe('https://www.openai.com')">Pàgina 2.2</div>
                    </div>
                </div>
            </div>
        </nav>

        <iframe id="contingut" src="about:blank"></iframe>

        <script>
            function canviaIframe(url) {
            document.getElementById('contingut').src = url;
            }
        </script>
    </body>
</html>

He fet el codi en una única línia

fetch('https://example.com/endpoint', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({clau: 'valor'})});
  • fetch('https://example.com/endpoint', {...})
    Avisa al servidor en aquest URL. És com demanar-li una petició web a aquesta direcció.

  • method: 'POST'
    És per dir que vols enviar dades (no sols demanar-les amb el GET).

  • headers: {'Content-Type': 'application/json'}
    Li diu al servidor que li està enviant un JSON, no una altra cosa.

  • body: JSON.stringify({clau: 'valor'})
    Converteix un JavaScript a text JSON per poder enviar-lo.