Dodaj do ulubionych

JS a generowanie stron

01.09.06, 15:18
Mam taki problem: czy da się za pomocą Java Script sprawić, aby po kliknięciu
na linka dana strona (ta, z której klikamy) została zastąpiona nową, ale
UWAGA, nie chodzi mi o wczytanie gotowej (zapisanej) strony (do tego to zwykły
<a href="...">), ale żeby została wczytana strona wygenerowana przez JS za
pomocą document.write()?

Jak by to miało wyglądać (mały opis algorytmu):
1. Skrypt generuje kod strony poprzez document.write() i zapisuje to do
jakiejś zmiennej (nazwijmy ją NewPage).
2. Użytkownik klika na link wywołujący kolejny skrypt, który wykonuje punkt 3.
3. Strona obecna zostaje zastąpiona tą wygenerowaną (NewPage).

Wiem, że da się wysłać wygenerowany kod do nowego okna. Ja natomiast chcę
zastąpić stronę w ramce.
Obserwuj wątek
    • tommy_from_cracow Re: JS a generowanie stron 01.09.06, 17:13
      Hej,

      Na oczatku zaznacze, ze nie jestem zbyt obyty w JS. Byc moze tez niebardzo Cie rozumiej niemniej jednak. Mysle ze jesli chodzi o pkt. 1 to nie ma sensu zapisywac kodu generowanej strony do zmiennej. Jesli generowane strony maja miec rozna tresc to chyba prosciej napisac funkcje generujaca kod nowej strony od A do Z i przekazac do niej argumenty np. tresc. Co do pkt. drugiego to moze skozystac z document.location albo window.location? No i moim skromnym zdaniem moze pomyslec o AJAX'ie? Bardzo prosty jest Sajax, ma jednak wade, otoz eksportowane powinny byc funkcje a nie klasy z php do JavaScriptu.
      Polecam i powodzenia!
      • miken1200 Re: JS a generowanie stron 01.09.06, 18:58
        Na początek podam ten skrypt, który wyświetla wygenerowaną stronę w nowym oknie:

        <script language="JavaScript">
        function popek()
        {
        config='toolbar=no,location=no,directories=no,status=no,menubar=no,width=200,height=150'
        config += 'scrollbars=no,resizable=no'
        pop = window.open ("","pop",config)
        pop.document.write('<body>');
        pop.document.write('Jakaś tam treść strony - tagi i inne takie');
        pop.document.write('</body>');
        }
        </script>
        </head>
        <body>
        <a href="javascript:popek()">Wywołanie nowej strony</a>

        Ja bym chciał, aby generowana strona zastępowała obecną.

        A teraz wytłumaczę, po co mi to.
        Otóż robię (jako wolontariusz) stronę schroniska dla zwierząt. Zrobiłem galerię
        zwierząt. Ponieważ nieznam się na PHP (kumam tylko HTML, CSS i JS) to napisałem
        skrypt JS, który ładnie generuje mi tabelkę (border=0 naturalnie) z miniaturkami
        zdjęć. Każda miniaturka to link do dużego zdjęcia. Ponieważ zwierzaki się dość
        często zmieniają, to ręczna edycja tabelki (usuwanie nieaktualnych i dodawanie
        nowych oraz zmiana kolejności zdjęć) za każdym razem byłaby bezsensu. Ze
        skryptem robota wygląda tak, że do tablicy (var t_foto=new Array();) wprowadzam
        kolejne dane (nazwa psa, numer zdjęcia, np. x++; t_imie[x]="Szarik";
        t_foto[x]="12"), a skrypt na podstawie tej tablicy genetuje galerię.

        Natomiast teraz chciałem dodać do zdjęć także opisy zwierząt. Nie chcę robić do
        każdego zwierzaka strony html z opisem, lecz chciałbym, aby te opisy także były
        wprowadzone do jakiejś tablicy, a kod by po prostu generował stronę. W ten
        sposób galerię mogłaby edytować osoba, która nie zna HTML - zwyczajnie by
        dodawała opis w notatniku wstawiając tylko na początku i końcu pokazane
        wcześniej przezemnie kilka kodów JS.

        Tak więc pytania są następujące: do jakiego obiektu/zmiennej wysłać kod [w
        przykładzie służy do tego pop.document.write()] oraz jak wywołać ten kod w tym
        samym oknie [w przykładzie otwierane jest nowe okno]???
        • fingoth Re: JS a generowanie stron 01.09.06, 19:04
          Przypominam, że takiej strony nie zobaczą osoby z wyłączoną obsługą JS. Także
          osoby niepełnosprawne, głównie niewidome nie bedą w stanie zapoznać się z tą
          witryną. Jeżeli chcesz aby strona była dostepna dla wszystkich zapomnij o JS.
          • miken1200 Re: JS a generowanie stron 01.09.06, 19:17
            Sama galeria i tak jest w JS więc i tak jej nie zobaczą.

            A co do niewidomych: czy programy czytające czytają kod strony (bezpośrednio z
            pliku html), czy też czytają kod strony wyświetlonej (tzn. z pamięci przeglądarki?)

            Na swoim FireFoxie mam plugin "Viev source chart" który nie wyświetla kodu
            zapisanego w pliku, ale taki kod, jaki wygenerowała przy wyświetlaniu
            przeglądarka. I w nim strona strona nie zawiera skryptu JS lecz już wygenerowaną
            przez ten skrypt zawartość, czyli normalne tagi <table>, <td>, itd.
            • fingoth Re: JS a generowanie stron 01.09.06, 21:01
              Nie jestem specjalistą od js, wiec moge sie mylic. Na pewno czytniki nie
              obsuguja stron opartych na technologii AJAX, a to przecież technologia oparta na js.
            • serinius Re: JS a generowanie stron 01.09.06, 21:44
              PHP nie znasz czy w ogóle nie masz na serwerze? Bo jeśli masz PHP, to prościej,
              szybciej i sensowniej robić takie rzeczy w PHP. A składnia PHP jest nawet
              prostsza niż JS, więc jakiż problem nauczyć się tego języka? Najlepiej
              JavaScript zostaw ewentualnie do różnych "pierdół", ale nie uzależniaj działania
              strony od tego przeglądarkowego języka. Tym bardziej jeśli robisz bardziej
              oficjalną stronę, a nie tylko swoją prywatną.
        • tommy_from_cracow Re: JS a generowanie stron 01.09.06, 22:18
          Hej,

          Wiesz wedlug mnie to nawigacyjnie lezy jako rozwiiazanie. W nowej stronie wywolanej javaScriptem pokazuje Ci sie psiak i opis. Jesli klient klika w link w nowym oknie to skad ma wiedziec co zobaczy? Zazwyczaj jest tak ze nowe okno pojawia mu sie jednorazowo a pozniej zamyka je i wraca do pelnej listy zwierzakow na stronie glownej. Moze to byc oczywiscie na zasadzie, ze po otwarciu okna, ma mozliwosc klikniecia next i lub back i wtedy odwoluje sie do kolejnych indeksow tablicy. W generowanym okienku przed body powinno znalezc sie jeszce <html> i <head>. W <head> poprostu podaj link do skryptu tak zeby z poziomu nowootwartego okna mozna bylo wywolac funkcje JS.No i jeszcze na koniec, proponuje odwolanie do window...
          • miken1200 Re: JS a generowanie stron 02.09.06, 13:29
            Ale ja NIE CHCĘ otwierać nowego okna - do tego to mogę wykorzystać podany
            wcześniej skrypt.

            Co do PHP - nie znam i w chwili obecnej niemam czasu na jego naukę. Zresztą
            konto (darmowe) i tak pewnie jego nie obsługuje (informacji technicznej nigdzie
            nie ma - jak ktoś ma wiedzę na temat kont na konin.lm.pl to niech się ze mną
            podzieli, pliis).

            Skoro nikt narazie nie zna odpowiedzi na mój problem, to może podam jeszcze
            jedno zagadnienie (jak dostanę pozytywną odpowiedź, to tamten problem przestanie
            być ważny, bo go inaczej rozwiążę).

            Czy można wywołać nową stronę przesyłając jednocześnie do niej wartość jakiejś
            zmiennej z JS (tzn wywołuję zapisaną stronę HTML z zawartym skryptem JS, a
            skrypt ten reaguje na podaną zmienną).
            • tommy_from_cracow Re: JS a generowanie stron 02.09.06, 20:17
              Witaj,

              Byc moze ze ciagle nie rozumiem ale zobacz czy o to Ci chodzi:
              www.ludwin.pl/index2.php?lang=pl
              www.ludwin.pl/_js/popImg.js
              A akwarele i podpisy sa zwracane przez php ale samo przegladanie jest czysto JavaScriptowe.
              Pozdrawiam!

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka