Estoy agregando un script a mi página:
<script src="https://example.com/script.js"/>Pero me gustaría poder pasar una "clave" a este script a medida que se carga, el script cargado debe poder acceder a la clave, ya que depende de él.
¿Cómo puedo hacer esto?
Idealmente, algo como esto sería genial:
<script src="https://example.com/script.js?key=authkey"/>Pero no puedo encontrar mucho sobre cómo hacer que esto funcione.
Hasta ahora he estado agregando una metaetiqueta adicional:
<meta name="key" content={"authkey"} />Y accediendo desde el script:
const key = document.getElementsByName("key")[0].content;Pero esto no es genial. También encontré esta respuesta pero no es mucho mejor.
Puede crear un nuevo script de elemento, pasar su src como su enlace mostrado y agregarlo en el cuerpo
window.addEventListener("load", () => { const script = document.createElement("script") script.src = "https://example.com/script.js" document.body.appendChild(script) const meta = document.createElement("meta") meta.name = "key" meta.content = "authkey" document.getElementsByTagName('head')[0].appendChild(meta) const key = document.getElementsByTagName("meta")[0] console.log(key.name) }) Editado: no pude agregar la propiedad key como atributo si no usaría setAttribute("key", "key") , usé ese método pero apareció otro problema
cuando tomaba esa metaetiqueta de document.head , mostraba ese Elemento agregado, también podía imprimir su content pero no la clave, tal vez porque el atributo predeterminado de la meta no es la clave, los atributos que puede pasar solo son charset, content, http-equiv y name , cuando estaba imprimiendo key.name , devolvía "undefined" , y luego cambié key a name y funcionó perfectamente, si el nombre del atributo no le causa problemas, todo funciona bien