Download index.html from whitphx/static-url-param-sync-example: direct link, hf CLI and curl.
- Browser
- Download file 1.98 kB
-
https://huggingface.co/spaces/whitphx/static-url-param-sync-example/resolve/main/index.html
- Command line
-
hf download hf://spaces/whitphx/static-url-param-sync-example/index.html
-
curl -L -o index.html https://huggingface.co/spaces/whitphx/static-url-param-sync-example/resolve/main/index.html
1.98 kB
| <html> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width" /> | |
| <title>Static Space URL sync example</title> | |
| </head> | |
| <body> | |
| <div> | |
| <h2>Sync the query string and the hash to the parent page URL</h2> | |
| <label for=""> | |
| Query string | |
| <input type="text" id="query"> | |
| </label> | |
| <label> | |
| Hash | |
| <input type="text" id="hash"> | |
| </label> | |
| <button onclick="sync()">Sync</button> | |
| </div> | |
| <div> | |
| <h2>Read the initial query and hash</h2> | |
| <label> | |
| Initial query | |
| <input type="text" readonly id="initial-query"> | |
| </label> | |
| <label> | |
| Initial hash | |
| <input type="text" readonly id="initial-hash"> | |
| </label> | |
| </div> | |
| <div> | |
| <h2>Read the hash reactively</h2> | |
| <input type="text" readonly id="read-hash-reactive"> | |
| </div> | |
| <script> | |
| // Sync query and hash from this embedded app to the parent page URL. | |
| function sync() { | |
| const queryString = document.getElementById("query").value; | |
| const hash = document.getElementById("hash").value; | |
| // HF Spaces' spacial message type to update the query string and the hash in the parent page URL | |
| window.parent.postMessage({ | |
| queryString, | |
| hash, | |
| }, "https://huggingface.co"); | |
| } | |
| // Read the initial query and hash. | |
| const initialQuery = window.location.search; | |
| const initialHash = window.location.hash; | |
| document.getElementById("initial-query").value = initialQuery ?? ""; | |
| document.getElementById("initial-hash").value = initialHash ?? ""; | |
| // Read the updated hash reactively. | |
| // Note: there is no way to capture the query string update like this because updating query string causes page-reload (ref: https://stackoverflow.com/a/4291024). | |
| window.addEventListener("hashchange", (event) => { | |
| console.log("hash change event", event); | |
| const currentHash = window.location.hash; | |
| document.getElementById("read-hash-reactive").value = currentHash; | |
| }); | |
| </script> | |
| </body> | |
| </html> | |