MozillaPL.org - polskie centrum Mozilli

Główne menu:

Pomozcie!

Projektowanie aplikacji i rozszerzeń opartych na technologiach Mozilla Foundation: XUL, JavaScript, XPCOM, XBL i innych

Moderator: Pomocy?!

Pomozcie!

Postautor: Domel » 21 marca 2003, 19:37

Przeglądarka: -

Musze napisac funkcje w JavaScript robiaca taka dziwna rzecz:
Ma sie otwierac nowe okno (cos jak popup), ktore wypisze jakis tekst np:
Kod: Zaznacz cały
Wiersz 1
ale to nie wszystko dalej powinien byc zomdyfikowany (edytowany !) skrypt tak aby w odpowiedniej linii (pod koniec skryptu) dopisac mniej wiecej cos takiego document.write("Wiersz 2") i wywolac nowe okno z tekstem
Kod: Zaznacz cały
Wiersz 1
wiersz 2
i znowu dopisac fragment kodu do skryptu i tak w nieskonczonosc.
Koncepcja niby latwa ale wykonanie nie wydaje sie latwe bo:
1) w JavaScript nie mozna otworzyc pliku i do niego zapisywac. Slyszalem, ze mozna to zrobic w XPCOM ale kompletnie sie na tym nie znam
2) z otwieraniem coraz to nowych okien (nazwa chyba musi sie caly czas zmieniac)
3) nie wiem jak z JS zatrzymac wykonywanie instrukcji na jakis okres czasu np 15 sek. (cos jak w C i w Pascalu delay()), bo jak tego nie zrobie system nie wytrzyma otwierania tych okien
4) nie wiem jaki obrac kierunek: czy wstawiac wszystko w HTML/XHTML czy moze w XUL?
Nie pytajcie po co mi popup z wywolaniem popup'a, ktory wywoluje nastepnego popup'a itp :)
Prosze was pomozcie, to dlamnie bardzo wazne!
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: prefiks » 21 marca 2003, 19:49

Przeglądarka: -

Witam.

Może to ci coś pomoże. Popupa otwieraj nie przez window.open, tylko przez window.openDialog(uri, name, flags, arg1, arg2, ...). W ten sposób możesz podać dodatkowe argumenty, które w nowootwartym oknie odczytujesz poprzez tablicę window.arguments[].

Co do delaya można go zrobić tylko poprzez pętle, co obciąża przeglądarke. W twoim przypadku, powinno wystarczyć ci window.setTimeout(fun, timeout, arg1, arg2, ...).

Żeby za każdym razem otworzyć nowe okno jako 'name' w openDialog podaj '_blank'.
prefiks
 
Posty: 179
Z nami od: 30 grudnia 2002, 01:45

Postautor: Domel » 21 marca 2003, 20:09

Przeglądarka: -

prefiks pisze:Popupa otwieraj nie przez window.open, tylko przez window.openDialog(uri, name, flags, arg1, arg2, ...). W ten sposób możesz podać dodatkowe argumenty, które w nowootwartym oknie odczytujesz poprzez tablicę window.arguments[].

Co miales konkretnie na mysli piszac argument flags?

prefiks pisze:Co do delaya można go zrobić tylko poprzez pętle, co obciąża przeglądarke. W twoim przypadku, powinno wystarczyć ci window.setTimeout(fun, timeout, arg1, arg2, ...).

Dobry pomysl.

A masz jakis pomysl jak zapisywac do pliku gdzie zjaduje sie skrypt (inny lub sen sam) kolejne wiersze kodu typu: pierwsze okno: wiesz 1 | drugie okno: wiersz 1, wiersz 2 | trzecie okno: wiersz 1, wiersz 2, wiersz 3 i tak dalej?

Jak bys mogl to napisz cos takiego jak przedstawiles. Chcialbym przejrzec jak cos takiego dokladnie zrobic (chodzi mi o szkielet czyli tylko non-stop otwierajace sie popup'y co 15 sek. niejako wywolujace samego siebie).
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: prefiks » 21 marca 2003, 20:22

Przeglądarka: -

Chodzi o coś takiego

Kod: Zaznacz cały
function onLoad() {
   var tekst = window.arguments[0];

   document.write(tekst);
   window.setTimeout(pokażPopupa, 1500, tekst+"<br>Kolejny wiersz");
}

function pokażPopupa(tekst) {
   window.openDialog("mojpopup.html", "_blank", "", tekst);
}


Resztę, jak i ewentualne błędu musisz opracować we własnym zakresie.
prefiks
 
Posty: 179
Z nami od: 30 grudnia 2002, 01:45

Postautor: Domel » 21 marca 2003, 20:29

Przeglądarka: -

prefiks pisze:Chodzi o coś takiego (...)

Dzieki za cenne uwagi ale nie o to mi dokladnie chodzlo.
Moze ktos ma jakies inne pomysly? A moze ktos wie jak napisac dodatek robiacy cos takiego?
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: prefiks » 21 marca 2003, 20:39

Przeglądarka: -

Jeśli koniecznie potrzebujesz zapisać coś do pliku możesz skorzystać z JSLIB z mozdev.org, ewentualnie mogę ci podesłać coś swojego, o podobnym działaniu.

Mój JID: prefiks@jabber.gda.pl.
prefiks
 
Posty: 179
Z nami od: 30 grudnia 2002, 01:45

Postautor: Gandalf » 22 marca 2003, 14:36

Przeglądarka: -

JSLib nie polecam. Ma bardzo powazna (w mojej ocenie wade), nie obsluguje Polskich znakow diakretycznych. Ani ISO, ani UTF-8 :(

Domel: jak dla mnie bardzo niejasno wytlumaczyles czego oczekujesz.
Z tego co widze nie ma w tym nic skomplikowanego, ale nie rozumiem co jest celem.

Otwieranie kolejnych okienk z coraz wieksza iloscia tekstu?

Czy nastepne okno ma sie pojawiac po 15 sekundach od otworzenia poprzedniego czy zamkniecia go?
Czy oknem moze byc alert/confirm? Co to znaczy "edytowany skrypt", bo kompletnie nie rozumiem? Po co ci zapis do pliku? czy to ma byc do strony WWW czy do aplikacji w Gecko?
Eliminujac wszystko czego nie rozumiem widze cos takiego:

Chcesz zrobic skrypt, ktory otwiera okno wypisujac "Wiersz1", potem po jego zamknieciu wyskakuje okno z napisem "Wiersz1\nWiersz2" i tak dalej. Ale chyba nie o to Ci chodzi.

Mysle, ze pomogloby gdybys napisal w punktach co chcesz osiagnac (prostymi, zolnierskimi, niewieloznacznymi okresleniami).
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: Domel » 22 marca 2003, 21:41

Przeglądarka: -

Gandalf pisze:JSLib nie polecam. Ma bardzo powazna (w mojej ocenie wade), nie obsluguje Polskich znakow diakretycznych. Ani ISO, ani UTF-8 :(

Podzielam, opinie a poza tym nie chce zaprzegac do tego jakiegos giganta, mysle o jakims rozwiazaniu nie typowym ale skutecznym.

Gandalf pisze:jak dla mnie bardzo niejasno wytlumaczyles czego oczekujesz.

Wlasnie to takie pogmatwane ze ciezko wytlumaczyc
Gandalf pisze:Z tego co widze nie ma w tym nic skomplikowanego, ale nie rozumiem co jest celem.

Jestem tego samego zdania ale jesli chodzi o php bo w js to naprawde nie wiem jak zrobic.

Gandalf pisze:Otwieranie kolejnych okienk z coraz wieksza iloscia tekstu?

Mniej wiecej

Gandalf pisze:Czy nastepne okno ma sie pojawiac po 15 sekundach od otworzenia poprzedniego czy zamkniecia go?

Tak ma sie pojawiac po 15 sek. i nie zamyka zadnego okna, zostaje (i caly czas liczba okien sie powieksza)

Gandalf pisze:Czy oknem moze byc alert/confirm?

Nie chodzi o normalne okno w sensie strony html (lub xul)

Gandalf pisze:Co to znaczy "edytowany skrypt", bo kompletnie nie rozumiem?

"edytowac skrypt" to otwozyc plik w ktorym znajduje sie skrypt i zapisywac za kazdym razem linijke, ktora bedzie odpowiedzialna za nowy wiersz tekstu np document.write("Wiersz 2")

Gandalf pisze:Po co ci zapis do pliku?

Chodzi o to zeby skrypt sam sie modyfikowal (nie wiem do czego to porownac to cos posredniego z rekurencja i robakiem internetowym - wirusem).
O co chodzi? Jest taki skrypt, ktory zajmuje sie otwieraniem jednego okna i wyglada tak:
Kod: Zaznacz cały
<script>
cos tam
document.write("Wiersz 1")
</script>

W nastepnym cyklu skrypt ma sam siebie modyfikowac dodajac cos takiego:
Kod: Zaznacz cały
<script>
cos tam
document.write("Wiersz 1")
document.write("Wiersz 2")
</script>
i otwierac nowe okno ale z tym samym plikiem.
Co do okien chodzi o to ze skrypt otwiera jedno okno ale z tym samym plikiem, czyli zawsze jest otwierany plik: przyklad.html (potem ten otwarty w nowym oknie otwiera znowu nowe okno ale zonwu przyklad.html i tak w kolo do nieskonczonosci)

Gandalf pisze:czy to ma byc do strony WWW czy do aplikacji w Gecko?

Moze byc w czym kolwiek byle nie w technologi side serwer. (czyli samo przez sie wynika ze zostaje JS i jego "dodatki")

Gandalf pisze:Eliminujac wszystko czego nie rozumiem widze cos takiego:

Chcesz zrobic skrypt, ktory otwiera okno wypisujac "Wiersz1", potem po jego zamknieciu wyskakuje okno z napisem "Wiersz1\nWiersz2" i tak dalej.

Tak tylko, ze okno nie jest zamykane i wiersz 1 musi byc wypisywany przez ten sam skrypt ktory jeszcze wszesniej nie robil tego ale przez jego zmodyfikowanie juz dodaje wiersz 1 itak dalej

Gandalf pisze:Mysle, ze pomogloby gdybys napisal w punktach co chcesz osiagnac (prostymi, zolnierskimi, niewieloznacznymi okresleniami).

OK, podsumuje:
1) wchodze do przegladarki i pojawia sie normalne okno wygladajace tak:
Kod: Zaznacz cały
wiersz 1
przyjmijmy dla ulatwienia ze uruchomiony plik (strona) nazywa sie przyklad.html tekst ktory sie pojawia jest napisany w skrypcie - to nie zaden HTML itp.
2) sen sam skrypt (bo w danym pliku musi byc tylko jeden skrypt, ktrory bedzie odpowiadal za rozne rzeczy jak dalej opisze) otwierakod HTML wyszukuje dana linijke miedzy znacznikami <script> a </script> i gdzies na koncy dodaje po document.write("Wiersz 1") dodaje document.write("Wiersz 2")
3) ten sam skrypt z punktu 2 otwiera nowe okno ale z samym sobie bo z plikiem przyklad.html
a okno wygla da juz tak:
Kod: Zaznacz cały
wiersz 1
wiersz 2

4) punkt 2 tylko ze juz document.write("Wiersz 3")
5) punkt 3 i tak w nieskonczonosc
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: Gandalf » 23 marca 2003, 18:37

Przeglądarka: -

Ok. Zlapalem. To teraz tylko jeszcze powiedz czy musi byc zmieniany plik html, czy nie moze byc po prostu liczba wierszy przekazana jako atrybut?!? (roznica znaczna! Na przyklad taka, ze jesli musi byc zapis pliku, to nastepne odpalenie aplikacji zacznie od takiej ilosci wierszy na jakiej zakonczylo)
Gandalf
 
Posty: 1802
Z nami od: 29 czerwca 2002, 04:37
Lokalizacja: Warszawa

Postautor: Domel » 23 marca 2003, 18:49

Przeglądarka: -

Gandalf pisze:To teraz tylko jeszcze powiedz czy musi byc zmieniany plik html

Tak
Gandalf pisze:czy nie moze byc po prostu liczba wierszy przekazana jako atrybut?!?

Niestety nie mozna (po mimo ze by bylo latwiej)
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: Domel » 26 marca 2003, 21:28

Przeglądarka: -

Odwoluje apel, juz mam ten skrypt. Dziekuje wszystkim, ktorzy pisali w tym watku.
Szczegolnie podziekowania kieruje do Prefiksa.
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok


Wróć do Programowanie z użyciem technologii Mozilli

Kto jest online

Zarejestrowani użytkownicy: Bing [Bot], dexter, Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: