| <!DOCTYPE html> |
| <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> |
| |
| function sync() { |
| const queryString = document.getElementById("query").value; |
| const hash = document.getElementById("hash").value; |
| |
| |
| window.parent.postMessage({ |
| queryString, |
| hash, |
| }, "https://huggingface.co"); |
| } |
| |
| |
| const initialQuery = window.location.search; |
| const initialHash = window.location.hash; |
| document.getElementById("initial-query").value = initialQuery ?? ""; |
| document.getElementById("initial-hash").value = initialHash ?? ""; |
| |
| |
| |
| 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> |
|
|