Hirdetés

Keresés

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

  • Sk8erPeter
    nagyúr

    Minden elismerésem és köszönöm a munkádat és a teljes körű magyarázatot! :R

    Szívesen, örülök, hogy megoldódott. :)

  • Sk8erPeter
    nagyúr

    A konzol szerint nincs hiba: kép.
    Szívesen megpróbálkozok a debuggal.
    ---------------
    Vááá, ha kiveszem a meghívott html div-jéből a .class="modal"-t, akkor jó, lefut minden.

    Hehe, és tényleg, reprodukáltam a jsFiddle-példában a problémát, <div class="modal">-ba rakva a visszakapott tartalmat, és így tényleg üresen jelenik meg. Hát ez a library működéséből következik, a megoldás simán az, hogy
    1.) a visszaadott tartalomból kihagyod a "modal" osztállyal ellátott divet (végül is felesleges)
    2.) átírod a displayModal függvényt úgy, hogy csak egy $(content).modal(); sor legyen benne.
    Utóbbinál viszont garantálnod kell, hogy egy jQuery-nek átadható tartalom van benne, tehát pl. mindenhol szerepel egy konténerelem, pl. épp a <div class="modal">...</div> vagy hasonló, de ez annyiból törékeny, hogy pl. már egy asdasd<div class="modal">...</div>qweqwe nem működne, mert a jQuery-nek átadva így szintaktikai hibát kapnál (a jQuery ezzel a tartalommal így már nem tud mit kezdeni, elég kipróbálni azt, hogy $('asdasd<div class="modal">...</div>qweqwe'), "Syntax error, unrecognized expression" lesz az eredmény).
    Persze annyiból így is-úgy is törékeny lesz a dolog, hogy ha van egy olyan div a kapott tartalomban, ami tartalmazza a "modal" osztályt, akkor az abban lévő tartalmat eleve kidobja. Szerintem ilyen szempontból szarul működik a library, de hát ez van.

  • Sk8erPeter
    nagyúr

    Hibakód szerintem nincs, itt egy kép, ha F12-t nyomok és frissítem az oldalt, hogy újra betöltődjön.

    Érdekes, mert úgy tűnik, a tartalom lekérése sikeresen meg is történik, ahogy látszott a korábban a konzolra kiírt tartalomból, tehát valamiért csak épp a modális ablak betöltése az adott tartalommal nem sikeres. Az általam definiált displayModal függvényt is átmásoltad?
    Igazából itt a legértelmesebb a böngészőn belüli debuggolás lenne, úgy, hogy egy breakpointot raksz a sikeres AJAX-kérést jelző eseménykezelőbe, meg mondjuk a displayModal függvénybe, megnézve, hogy a tartalom az elvárt-e, mi a változók aktuális értéke, stb... Egyszerű megközelítésként, ha még nem debuggoltál (egyébként elég egyszerű), egészítsd ki mondjuk ezt is egy konzolra kiíratással:

    function displayModal(content) {
    console.log('content: ', content);
    $('<div>', {
    html: content
    }).modal();
    }

    Most jobb ötletem nincs, ha a debuggolás még nem megy, mint hogy vizsgáljuk meg ilyen módon, hogy a tartalmak az elvártak-e, eljut-e idáig, stb. Ha a tartalom ezenbelül megfelelő, akkor nem nagyon értem, miért nem működik nálad, amikor a jsFiddle-példában jó, de derítsük ki egyelőre ezt, hogy idáig eljutunk-e.

    (#5201):
    Hát köszi, de azért bőven szoktam tévedni. :D

  • Sk8erPeter
    nagyúr

    Köszi szépen a segítséget.
    Egyelőre nem működik nálam. Átültetve megjelenik a Modal ablak, de nem hozza be a hir.html tartalmát :(
    Kitöröltem az url='/echo/html/'-t, megváltoztattam a type:-ot GET-re és kitöröltem a //INNENTŐL ... //IDÁIG sorokat.
    Szerintem nálam van a hiba :))

    Chrome böngésző -> F12 -> Console a következőt írja:
    data: <div class="modal">
    <H1>Ez egy másik weboldal szövege - AJAX használatával.</H1>
    </div>

    Szívesen. Ja, a konzolra ezt az üzenetet azért írja, mert beleraktam egy console.log(...) sort. :D Azt akár ki is törölheted, debuggolási célra jó a console.log - de ebből kiindulni nem lehet, mivel ez nem hiba.
    Ha a Network fülre kattintasz a webfejlesztő panelon, ott látszik valami pirossal jelölt erőforrás, meg valami hibakód, amikor megpróbálja betölteni a tartalmat? Ha a megfelelő linkre kattintasz, akkor mi történik?

  • martonx
    veterán

    Köszi szépen a segítséget.
    Egyelőre nem működik nálam. Átültetve megjelenik a Modal ablak, de nem hozza be a hir.html tartalmát :(
    Kitöröltem az url='/echo/html/'-t, megváltoztattam a type:-ot GET-re és kitöröltem a //INNENTŐL ... //IDÁIG sorokat.
    Szerintem nálam van a hiba :))

    Chrome böngésző -> F12 -> Console a következőt írja:
    data: <div class="modal">
    <H1>Ez egy másik weboldal szövege - AJAX használatával.</H1>
    </div>

    sk8erpeter annyira szépen szájbarágósan megcsinálta. Szvsz ennél többet nem tehetünk érted. :(

  • Sk8erPeter
    nagyúr

    Köszönöm a választ. Megpróbáltam a jsFiddle-t, a CodePen-t és a Plnkr.co-t is, de egyiken sem tudom megmutatni a problémámat.
    A jsFiddle-re feltöltöttem a külső anyagokat (css, js, html fájlok), de nem hajtja végre a feladatot (hiába kattintok az IDE feliratra, nem hajtja végre), egyébként itt a link hozzá.
    A CodePen annyival előrébb van, hogy végrehajtja a feladatot, tehát rákattintva az IDE feliratra megjeleni egy új oldal tartalma, de nem Modal Window-ként mutatja meg, itt a link hozzá.
    Ezért, végelkeseredésemben összecsomagoltam egy 9k fájlba és így osztottam meg.

    Itthon, ha szerkesztem Bracket-ben, akkor Google böngészőben végrehajtja a feladatot. Feltöltöttem egy szerverre, azon nézve szintén végrehajtódik az IDE feliratra való kattintás. Viszont simán Total Commanderből indítva a html-t nem hajtódik végre a böngészőkben, egyedül az Internet Explorer-ben, ha engedélyezem az aktív tartalmat.

    Működésre bírtam neked:
    http://jsfiddle.net/bha6er48/20/
    Kommenteztem a kódot, remélem, az alapján egyértelmű lesz, ha valami nem tiszta, kérdezz nyugodtan.
    A jsFiddle API-t használtam az AJAX-tesztelésre, ezért szerepel bedrótozva az URL-nél a /echo/html/ a loadContentFrom függvény első sorában (a böngészők biztonsági beállításai miatt nem is lehetne másik domainre kérést indítani), azt az egy sort majd kitörölheted az éles kódban! Az $.ajax résznél majd a POST-metódust változtasd GET-re, ez is a jsFiddle miatt volt szükséges.

  • Sk8erPeter
    nagyúr

    Segítséget kérnék egy vélhetően alap programozási dologban. Modal Window-t szeretnék rögtön a kezdőképernyőre, miután betöltött a program. Ezt a kérdést feltettem a weblap készítés topikban, és el is indultam a megadott irányba a kapott válaszok alapján, de a programozási skillem felér a héber nyelv tudásommal, így nem sikerült megvalósítani.
    Itt egy link (Hogyan.zip), amely tartalmazza az összes szükséges fájlt a 'problémámhoz', ha valakinek van egy kis ráérő ideje, és vet rá egy pillantást, akkor nagyon megköszönöm a segítségét.

    Ha lehet, rakj fel egy egyszerűsített példát inkább a jsFiddle-re, pont ilyen szemléltetésre és demózásra való. Az egyes külön lévő panelekbe fel tudod rakni a HTML-, CSS-, ill. JS-kódodat. A HTML-résznél ebben az esetben nem kell az alapvető struktúra, elég a <body>-ban lévő részt bemásolni. Így több esélyed van arra, hogy segítséget nyújt valaki közülünk, amikor picit ráér. :)
    Szerintem a legtöbbünknek nem lesz kedve kibontani a zip-fájlodat, aztán helyileg tesztelni, majd felrakni helyetted a javított/javasolt jsFiddle-példát. :)

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

Hirdetés