Si puedes ayudar con este problema, te lo agradecería ya que estoy fuera de mi alcance.
Tengo un montón de etiquetas meta en un encabezado HTML que necesitan asignar su contenido a variables en la URL. Por ejemplo, si tenemos esta URL:
http://example.com?bofn=Dave&boln=Nate&boem=Pat&botn=Taylor&bstn=Chris&lstn=Rami
Nos gustaría que las etiquetas meta en el encabezado se leyeran así:
<meta name="bofn" content="Dave"> <meta name="boln" content="Nate"> <meta name="boem" content="Pat"> <meta name="botn" content="Taylor"> <meta name="bstn" content="Chris"> <meta name="lstn" content="Rami">Por lo que encontré en línea, esto probablemente usaría javascript para funcionar (¿URLSearchParams y/o location.search?), Pero no tengo idea de cómo hacerlo.
Divida la cadena de URL en variables y sus valores, luego revíselos y cree para cada uno de los nuevos metaelementos.
var str = 'http:example.com?bofn=Dave&boln=Nate&boem=Pat&botn=Taylor&bstn=Chris&lstn=Rami'; // split('?')[1] takes all after '?' (removes http://example.com) // split('&') creates array ('bofn=Dave', 'boln=Nate', ...) var parts = str.split('?')[1].split('&'); // go through all variables for (let i = 0; i < parts.length; i++) { // create new HTML element var el = document.createElement('meta'); // split key, value var keyval = parts[i].split('='); // set name and content attributes, fill values in el.name = keyval[0]; el.content = keyval[1]; // append meta elements to head document.getElementsByTagName('head')[0].appendChild(el); }Pude resolver el problema con la ayuda de Pavel reemplazando la URL con window.location.href :
<script> var str = window.location.href; // split('?')[1] takes all after '?' (removes http://example.com) // split('&') creates array ('bofn=Dave', 'boln=Nate', ...) var parts = str.split('?')[1].split('&'); // go through all variables for (let i = 0; i < parts.length; i++) { // create new HTML element var el = document.createElement('meta'); // split key, value var keyval = parts[i].split('='); // set name and content attributes, fill values in el.name = keyval[0]; el.content = keyval[1]; // append meta elements to head document.getElementsByTagName('head')[0].appendChild(el); } </script>