Autor | Zpráva | ||
---|---|---|---|
blahapet Profil |
#1 · Zasláno: 4. 4. 2024, 08:49:52
Ahoj, momentálně řeším nový widget PPL, návod zde.
Potřeboval bych nějakým způsobem "někde" vypsat na stránce výdejní místo, které si uživatel vybere. Mám svůj kód, kde na konci skriptu vkládám onen kus kódu s metodou addEventListener: <h1>PPL</h1> <style> /* CSS for the modal overlay */ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.75); display: none; } /* CSS for the modal box */ .modal-box { position: absolute; width:98%; left:15px; margin: 0 auto; height: 720px; display: none; z-index:99999; } #close-modal-button { position: absolute; top: 10px; right: 10px; z-index: 9999; font-weight:bold;color:#fff; background:#174290; padding:.5em;width:100px;cursor:pointer } .ppl-parcelshop-map { height: 100%; max-height: 640px; } </style> <button id="modal-button">Open Modal</button> <!-- Modal overlay --> <div class="modal-overlay"></div> <!-- Modal box --> <div class="modal-box"> <input id="close-modal-button" value="Zavřít okno" /> <div id="ppl-parcelshop-map" data-countries="cz"></div> </div> <script> // Get the modal elements var modalOverlay = document.querySelector(".modal-overlay"); var modalBox = document.querySelector(".modal-box"); var closeButton = document.querySelector("#close-modal-button"); // Get the button that opens the modal var modalButton = document.querySelector("#modal-button"); // When the user clicks the button, show the modal modalButton.addEventListener("click", function () { modalOverlay.style.display = "block"; modalBox.style.display = "block"; modalBox.style.top = window.pageYOffset + 15 + "px"; // Create a link element to load the main.css file var link = document.createElement("link"); link.rel = "stylesheet"; link.href = "https://www.ppl.cz/sources/map/main.css"; // Create a script element to load the main.js file var script = document.createElement("script"); script.src = "https://www.ppl.cz/sources/map/main.js"; // Add the script+href link to the document head document.head.appendChild(link); document.head.appendChild(script); }); // When the user clicks the close button, hide the modal closeButton.addEventListener("click", function () { modalOverlay.style.display = "none"; modalBox.style.display = "none"; }); document.addEventListener( "Ppl-parcelshop-map", (event) => { console.log("Vybraný parcel shop:", event.detail) } ); </script> Mapa výdejních míst se normálně zobrazí, když nějaké místo vyberu a potvrdím, tak po kliku klávesou F12 v Goggle Chrome na consolu, se mi nic nezobrazí. Potřeboval bych to ale spíš vypsat do nějakého ID elementu na stránce. Omlouvám se, jsem v tomto neznalec a děkuji za každou radu. |
||
Kajman Profil |
#2 · Zasláno: 4. 4. 2024, 09:19:00
Konzoli (F12) si musíte otevřít před vybráním místa. Pokud není otevřená, log se nemá kam zapsat.
|
||
blahapet Profil |
#3 · Zasláno: 4. 4. 2024, 12:22:39
Díky moc, ono to to hlavně vypisovalo tuto hlášku níže již před tím, ale moc jsem tomu nevěnoval pozornost, protože PPL používalo do února tohoto roku starší widget, který mi bez problémů fungoval a nahradili to tímto. Je mi to divné, proč by používali nově zastaralou knihovnu? Jinak se nic nezměnilo, tuto hlášku to vypisuje i když konzolu otevřu před vybráním výdejního místa.
Používáte zastaralou verzi knihovny JS SDK Mapy.cz. Tato knihovna přestane být v blízké době podporována. Doporučujeme přejít na nové REST API Mapy.cz. Více informací najdete zde: developer.mapy.cz/js-api/ukonceni-podpory-js-sdk |
||
blahapet Profil |
#4 · Zasláno: 4. 4. 2024, 17:10:14
Je možné prosím to nějak vypsat do elementu na stránce? Zkoušel jsem toto:
document.addEventListener( "Ppl-parcelshop-map", (event) => { document.getElementById('element').innerHTML = "Vybraný parcel shop:" + event.detail }); Ale nic se neděje, asi dělám něco blbě... |
||
Keeehi Profil |
#5 · Zasláno: 4. 4. 2024, 17:41:05
blahapet:
Na první pohled nevidím nic, co by bylo špatně. Byl by odkaz přímo na stránku? Jednodušeji by se to debugovalo. |
||
blahapet Profil |
#6 · Zasláno: 4. 4. 2024, 17:54:01
Jistě, je to celé zde.
|
||
Kajman Profil |
#7 · Zasláno: 4. 4. 2024, 19:22:57
V té dokumentaci mají chybu. Když změníte jméno události na malé p "ppl-parcelshop-map", tak si už můžete vrátit objekt event.detail do console a z něho pak si pak musíte vybrat, které údaje z toho místa tam chcete.
document.addEventListener( "ppl-parcelshop-map", (event) => { document.getElementById('element').innerHTML = "Vybraný parcel shop:" + event.detail["name"] + ", " + event.detail["street"] }); |
||
blahapet Profil |
#8 · Zasláno: 4. 4. 2024, 21:23:11
Strašně moc děkuju. Je někde prosím seznam těch všech vrácených hodnot? "name", "street" ?
|
||
Keeehi Profil |
#9 · Zasláno: 4. 4. 2024, 21:27:19
blahapet:
Ideální to bude prozkoumat v konzoli. document.addEventListener( "ppl-parcelshop-map", (event) => { console.log(event) } ); |
||
blahapet Profil |
#10 · Zasláno: 4. 4. 2024, 21:48:26
Děkuji moc všem za pomoc, už mám vše, co jsem potřeboval.
|
||
Kajman Profil |
#11 · Zasláno: 5. 4. 2024, 19:34:06
blahapet:
Příště si vezměte aktuální návod přímo od nich, ušetříte si starosti. V novější verzi už mají překlep opravený. www.ppl.cz/documents/20122/1732536/PPL_CZ_Integrace_PPL_mapy_widget_v1.5.2.pdf |
||
blahapet Profil |
#12 · Zasláno: 6. 4. 2024, 04:21:55
Jéé, tak ten jsem nikde na internetu nenašel, ale děkuju.
|
||
Časová prodleva: 10 měsíců
|
0