Új hozzászólás Aktív témák

  • Taci

    addikt

    válasz disy68 #8191 üzenetére

    Egyszerűen nem értem, hogyan (nem) működik ez a szkript. (https://weatherwidget.io/js/widget.min.js)

    Már csak a widget miatt az ezt tartalmazó HTML részt kiszerveztem külön, mert utólag nem tudtam működésre bírni, hogy betöltsön (ezt segítettél megérteni múltkor). A HTML részt betöltötte (ami igazából csak a link az időjárási adatokra a város nevével, de az utána következő grafikus részt, amiért a JS felel, azt már nem. Csak akkor töltötte be, ha az ezt tartalmazó HTML részt az aktuális városadatokkal együtt generáltatom, és ezt töltöm be.
    Ugye ezt is írtad: "a böngésző nem fogja kiértékelni a script tag-ekben lévő kódot, amit innerHTML-ként megadsz biztonsági okokból." Ez világos.
    Viszont direkt ezért ezt a HTML "panelt" egy külön JS generálja és tölti be, működik szépen. Most viszont néha újra be kell tölteni, és hiába adom ismét hozzá a frissen generált HTML "panelt", így már nem működik. Pedig pontosan ugyanazt a JS függvényt hívom meg. Pontosan ugyanazt. Elsőre működik, másodikra nem. Az elsőt az oldal betöltések hívja meg, az lekér pár adatot adatbázisból, aztán beadja a widgetnek, és betölti. Működik.
    De aztán pont ugyanezt a függvényt hívom meg, csak más adatokat kap, de a JS ugyanaz, csak más paraméterekkel dolgozik, és így már nem fut le a widget JS része.

    Miért nem? Hogyan lehet ezt megoldani? Biztosan kell rá megoldásnak lennie.

    Pl. itt van a widget készítőjének weboldala: https://weatherwidget.io/
    Ott akárhányszor megadok egy városnevet, mindig újra és újra generálja a modult. Nem tölti be külön a HTML részt, nem tölti újra az oldalt, mégis, milliószor is betölti, lefut, kirajzolja, működik szépen.
    Ezt hogyan kell elérni? Hogyan lehet a weboldal egy adott részén lévő JS-et újra és újra lefuttatni más és más adatokkal? Utólag nem lehet hozzáadni és futtatni, de ha már ott van, hogyan lehet új adatokkal újra és újra futtatni, kiértékeltetni?

    Remélem, érthetően írtam le, nagyon lefárasztott már, egyszerűen nem értem.
    Tuti alap dolog kell hogy legyen, hisz' az ő weboldalukon is gond nélkül működik.
    Átírom én a kódomat bármilyenre, csak működjön.

    Lekérem az aktuális koordinátákat, adatbázisból lehívom hozzá a városnevet, ahhoz megvan a forecast7 link, és meg is van minden a widget új adatokkal való betöltéséhez.

    <a class="weatherwidget-io" href="https://forecast7.com/en/40d71n74d01/new-york/" data-label_1="NEW YORK" data-label_2="WEATHER" data-theme="original" >NEW YORK WEATHER</a>
    <script>
    !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='https://weatherwidget.io/js/widget.min.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','weatherwidget-io-js');
    </script>

    A vastagon szedett és aláhúzott elemeket kell csak cserélnem.

    Hogyan lehet ezt a friss adatokkal újra és újra betölteni, úgy, ahogy pl. az ő weboldalukon is működik?

    Köszönöm előre is!

Új hozzászólás Aktív témák

Hirdetés