No puedo usar url Query https://example.com/?l=http://example2.com en mi servidor CloudFlare Worker.
Entonces, mi pregunta es cómo convertir este script JS para que funcione con https://example.com/#http://example2.com
function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } var l = getUrlVars()["l"];
Basado en la respuesta de jp-jee, este es mi script:
<script> var hash = window.location.hash; function change(){ var txt = hash.replace("#", ""); document.getElementById("url").value = txt; } </script> <input onclick="change()" name="url" type="text" id="url" placeholder="enter url here" value="enter url here" /> <button id="submit" onclick="submitURL()">Submit</button>
Gracias :)
Utilice window.location.hash
y elimine el carácter #
del resultado.
Para la URL https://example.com/#http://example2.com
, window.location.hash
se evalúa como "#http://example2.com"
El #
y el texto que le sigue se conocen como "fragmento" o "hash". La clase URL
pone esto en la propiedad .hash
.
Sin embargo, hay un problema diferente: este texto no se envía al servidor en HTTP regular, se guarda solo en el navegador. Eso significa que no puede ver este valor en Cloudflare Workers ni en ningún otro código del lado del servidor. Si desea utilizar #
para la navegación, debe implementar su navegación en el lado del cliente, en el navegador.