/ / Passare il numero di porta in html dopo che è stato creato - javascript, html

Passare il numero di porta in html dopo che è stato creato - javascript, html

Il processo che sto facendo è scrivere un file html equalche volta in futuro aprirai un server locale, che cerca una porta aperta, quindi conosco solo la porta che il server sta ascoltando dopo la creazione del codice HTML. C'è un modo per passare il numero di porta alla pagina html quando lo si apre?

Ho pensato di scrivere il numero di porta in afile e in qualche modo usare javascript per leggere il file, ma capisco che a causa delle restrizioni di sicurezza, non riesco a leggere un file sul lato client in una variabile javascript.

risposte:

1 per risposta № 1

Penso che potresti andare con il javascript window.postMessage metodo qui. Ciò ti consente di trasferire in modo sicuro i messaggi tra le origini. Una volta che hai la porta, usala per passarla all'html iniziale.

MODIFICARE:

Permettetemi di chiarire la mia risposta un po 'di più.

Con il metodo postMessage, è possibile inviare messaggi tra schede o finestre. Quindi, ecco come può funzionare per te.

  1. L'utente apre il tuo file HTML, che allega un ascoltatore per un messaggio da un'altra pagina. per esempio:

    window.addEventListener("message", receiveMessage, false);

  2. Una volta che hai la tua porta, tutto ciò che devi fare è passare la porta nel metodo postMessage. per esempio:

    popup.postMessage("8080", "http://domainOfFirstHTML.file");

L'unica sfida che vedo in questo approccio è il2 ° passo. Ma poiché sembra che tu possa scrivere un file, suppongo che potresti aprire un altro file HTML, che invia il messaggio al primo HTML e si chiude da solo.


0 per risposta № 2

Se ho capito bene:

A. alcuni servizi scrivono la porta del server nel file HTML.

B. più tardi non vuoi leggere quella porta e usarla (nello stesso HTML)?

Se è così, può essere fatto con javascript Posizione oggetto (location.port) - che viene letto dal file html (per esempio da un ID di qualche div (... id = "80" ...)