Article View: pl.comp.lang.php
Article #231965Re: Javascript Argument funkcji
From: Marek S
Date: Thu, 22 Feb 2018 16:00
Date: Thu, 22 Feb 2018 16:00
67 lines
3452 bytes
3452 bytes
W dniu 2018-02-22 o 08:27, konsul41@wp.pl pisze:
> Piszę "Applikację" SPA i nie ma sensu historia przeglądarki (wszystkie
> podstrony są ładowane dynamicznie do DIV, główny adres nie zmienia się).+
Nie lepiej mieć wtedy iframe'a? Nie będzie kłopotu z URLami. To tak na
marginesie bo poza wątkiem.
> Poszukuję pomysłu na coś w rodzaju historii na stronie.
> w jednym z div mam dwa przyciski jeden w tył, a drugi w przód.
> Jak w prosty sposób zrobić coś w rodzaju historii do której tylko
> nieliczne podstrony mogą dodawać "linki" gdzie można wrócić.
> (...) Nie wiem czy to dobry pomysł i jak to zrobić. Raczkuję dopiero w
> Javascript.
> A może można to lepiej zorganizować?
Ok, rozumiem. Tą pseudo-historię możesz trzymać gdzie chcesz -
cookies/magazyn. To jest ok. Ja bym to zrobił zupełnie inaczej.
Po pierwsze pakowanie fragmentów HTML'a, kodu JS z nim powiązanego itp.
jako kroków w historii to chory pomysł. Moim zdaniem krok historii
powinien być obiektem np:
krok={url_powrotu:xxx, cecha1:xxx, cechaN:xxx ...}
"Cecha" to jakiś parametr jeśli w ogóle go potrzebujesz. Potem
poszczególne kroki byłyby umieszczane w tablicy:
krkoki=[];
kroki.push(krok1);
kroki.push(krok2);
...i taki obiekt gdzieś tam, gdzie chcesz zapisywany i odczytywany. Zero
HTMLa, zero jakiś dziwactw - tylko dane.
Po drugie.
Rysowanie historii w dokumencie HTML powinno odbywać się z poziomu JS w
postaci odtwarzania kroków w/w tablicy i DYNAMICZNEGO kreowania
poszczególnych składowych. Zapomnij o innerHTML. Np. jeśli krok ma
wyglądać jako:
<section id="historia">
<div class="krok"></div>
<div class="krok"></div>
<div class="krok"></div>
...
</section>
To użyj
document.createElement("div");
Przypisz klasę, która określi wygląd, użyj addEventListener("click") do
uwrażliwienia na kliknięcie, przypisz obrazek do tła tego DIVa i/lub
dodaj tekst do DIVa. Potem go appenduj do elementu "historia". I tak w
pętli po wszystkich elementach historii za pomocą for...of.
Albo inaczej: przeczytaj najpierw jakiś podręcznik do programowania w
JS. Przy czym taki, który jest w miarę świeży, najlepiej dotyczący
ECMA6. Nie chodzi wyłącznie o zapoznanie się z referencjami JS ale
zasadami posługiwania się tym językiem w kontekście DOM, aplikacji WWW.
2-3 dni lektury z pewnością sporo rozjaśnią.
--
Pozdrawiam,
Marek
Technical Details
Message-ID:
<p6mpfn$7c1$1@node1.news.atman.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mailReferences:
<5a8d4ed8$0$658$65785112@news.neostrada.pl> <p6k5os$6mr$1@node2.news.atman.pl> <5a8e70d0$0$557$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.lang.php Subject: Re: Javascript Argument funkcji Date: Thu, 22 Feb 2018 17:00:54 +0100 Organization: ATMAN - ATM S.A. Lines: 67 Message-ID: <p6mpfn$7c1$1@node1.news.atman.pl> References: <5a8d4ed8$0$658$65785112@news.neostrada.pl> <p6k5os$6mr$1@node2.news.atman.pl> <5a8e70d0$0$557$65785112@news.neostrada.pl> NNTP-Posting-Host: 89-69-207-111.dynamic.chello.pl Mime-Version: 1.0 X-Trace: node1.news.atman.pl 1519315255 7553 89.69.207.111 (22 Feb 2018 16:00:55 GMT) X-Complaints-To: usenet@atman.pl NNTP-Posting-Date: Thu, 22 Feb 2018 16:00:55 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 In-Reply-To: <5a8e70d0$0$557$65785112@news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit