ďťż
 
Wyświetlanie okienka ďťż
 
Wyświetlanie okienka
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Wyświetlanie okienka



Marcin - 23-10-2005 18:14
Wyświetlanie okienka
  Witam!

Używam funkcji wyświetlającej nowe okienko:

function DisplayWindow(url) {
var Win = window.open(url, "displayWindow", 'scrollbars, resizable,
height=200, width=450');
}

czy istnieje możliwość, aby nie podawać height i width, a okienko samo
dostosowało swój rozmiar do zawartości?

--
Pozdrawiam
Marcin





Tomasz S. - 23-10-2005 18:14

  Dnia 07-10-2005, pią o godzinie 16:34 +0200, Marcin napisał(a):
> Witam!
>
> Używam funkcji wyświetlającej nowe okienko:
>
> function DisplayWindow(url) {
> var Win = window.open(url, "displayWindow", 'scrollbars, resizable,
> height=200, width=450');
> }
>
> czy istnieje możliwość, aby nie podawać height i width, a okienko samo
> dostosowało swój rozmiar do zawartości?

Tak, ale robisz to juz w otwartym okienku .. tylko ze moze byc problem z
tekstem .. bo co rozumiesz np przez szerokosc tekstu ??? jesli napiszesz
tekst bez znakow nowej linit to przeciez nie otworzysz okienka o
wysokosci jednego znaku a szerokoci np 3000 :) .. w przypadku tekstu
najelpiej jest miec stala szerokosc, a tekst sie zalamie odpowiednio ...

jesli to obrazek to masz sprawe latwa .. masz zseroksoc obrazka i
wysokosc .. i potem juz tylko ustawienie parametrow okienka ;)

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.javascript




porneL - 23-10-2005 18:14

  On Fri, 07 Oct 2005 15:34:39 +0100, Marcin <xxx001@wp.pl> wrote:

> Witam!
>
> UÂżywam funkcji wyÂświetlajÂącej nowe okienko:
>
> function DisplayWindow(url) {
> var Win = window.open(url, "displayWindow", 'scrollbars, resizable,
> height=200, width=450');
> }
>
> czy istnieje mo¿liwoœÌ, aby nie podawaÌ height i width, a okienko samo
> dostosowaÂło swój rozmiar do zawartoÂści?

Po pierwsze twój popup jest irytujący - jeśli wszystkie okna mają tą samą
nazwę (różną od _blank), to następne "otworzenia" okna będą podmieniały
zawartość w starym.

Wielkości teoretycznie można nie podawać, ALE prawie wszystkie
przeglądarki poza IE to blokują, żeby nie dało się robić latających i
skaczących okien.

Lepiej przygotuj rozmiar wcześniej:
http://pornel.net/pups
http://pornel.net/onclick

--
porneL




ethanak - 23-10-2005 18:14

  On 2005-10-07 18:00, porneL wrote:
[...]
> Lepiej przygotuj rozmiar wcześniej:
> http://pornel.net/pups
> http://pornel.net/onclick

A co zrobić w przypadku kiedy nie możesz? Akurat ja tak mam...

ethanak

PS. Można przez ukrytą ramkę i img.onload, ale wolałbym jakoś
prościej... tak żeby wywołać funkcję w stylu pokaz_obrazek("/dupa.jpg")
i żeby się ładnie pokazał...





porneL - 23-10-2005 18:14

  On Fri, 07 Oct 2005 17:01:14 +0100, ethanak <ethanak@p01ip.c0m> wrote:

> On 2005-10-07 18:00, porneL wrote:
> [...]
>> Lepiej przygotuj rozmiar wcześniej:
>> http://pornel.net/pups
>> http://pornel.net/onclick
>
> A co zrobić w przypadku kiedy nie możesz? Akurat ja tak mam...

Kiedy nie możesz?

W swoim przykładzie i tak mam na to odpowiedź - otwierać okno duże na
zapas.

> PS. Można przez ukrytą ramkę i img.onload, ale wolałbym jakoś
> prościej... tak żeby wywołać funkcję w stylu pokaz_obrazek("/dupa.jpg")
> i żeby się ładnie pokazał...

Duże opóźnienie w otwieraniu okna może być irytujące...

Jeśli już, to bym to robił po stronie serwera. Można szybciej zassać
obrazek i sprawdzić rozmiar (a wynik wrzucić do jakiegoś cache).

--
porneL




ethanak - 23-10-2005 18:14

  On 2005-10-07 18:25, porneL wrote:
[...]
> W swoim przykładzie i tak mam na to odpowiedź - otwierać okno duże na
> zapas.

Właśnie chciałbym takie ładne na wymiar... duże na zapas to jest dla
bezjavasriptowców.

>
>> PS. Można przez ukrytą ramkę i img.onload, ale wolałbym jakoś
>> prościej... tak żeby wywołać funkcję w stylu pokaz_obrazek("/dupa.jpg")
>> i żeby się ładnie pokazał...
>
>
> Duże opóźnienie w otwieraniu okna może być irytujące...

No właśnie dlatego nie chcę tego stosować.
>
> Jeśli już, to bym to robił po stronie serwera.

Akurat chodzi o sytuację gdzie na serwerze nie mogę nic zrobić...

Normalnie mam w bazie podane wymiary obrazka i generator tworzy mi coś w
stylu:

<a href="/obrazki/dupa.jpg" onclick="return
show_image('/obrazki/dupa.jpg',640,480)"

i to jest OK.

Problem jest na przykład taki, że user ma możliwość podmienienia
obrazka, a nie ma możliwości ingerencji w kod ani uruchomienia generatora.

W ogóle takich głupawych sytuacji mam więcej (np. obrazek jest na innym
serwerze i nie mam szans sprawdzenia jakie ma rozmiary przed
załadowaniem) - dlatego wolałbym mieć coś co ładnie otwiera mi okienko w
rozmiarach automatycznie dopasowanych do obrazka.

Podany kiedyś przeze mnie kod ma wszystkie wady które wymieniasz (plus
ta jedna, że czasami nie działa z przyczyny mianowicie takiej że nie
działa) - natomiast tą jedną zaletę że czasami (w 95% przypadków)
działa... i dlatego tam gdzie nie mam możliwości określenia rozmiarów po
prostu go stosuję mając cichą nadzieję że użyszkodnik nie wsadzi mi
obrazka który akurat dziwnym trafem ma rozmiary niełykalne przez mój
skrypt :)

> Można szybciej zassać
> obrazek i sprawdzić rozmiar (a wynik wrzucić do jakiegoś cache).
>

Zawsze jest to opóźnienie - szczególnie w przypadku obrazków wysokiej
jakości. Od strony serwera jakby nie patrzeć muszę zawsze wykonaćjakiś
kod... niech to będzie nawet analiza pierwszych iluśtam bajtów :(

To co mi się w tej chwili nasunęło to wykorzystanie XMLHttpRequest
(sprawdzenie rozmiarów obrazka może być zaszyte w dość prostym i szybkim
module Apacza) i na podstawie tego co dostanę z serwera otwarcie okna w
określonym rozmiarze - ale czy to nie jest wyprawa z czołgiem na mrówkę?

ethanak




porneL - 23-10-2005 18:14

  On Fri, 07 Oct 2005 17:41:06 +0100, ethanak <ethanak@p01ip.c0m> wrote:

>> Duże opóźnienie w otwieraniu okna może być irytujące...
>
> No właśnie dlatego nie chcę tego stosować.
>>
>> Jeśli już, to bym to robił po stronie serwera.
>
> Akurat chodzi o sytuację gdzie na serwerze nie mogę nic zrobić...

No to jak nie możesz, to nie możesz...

>> Można szybciej zassać
>> obrazek i sprawdzić rozmiar (a wynik wrzucić do jakiegoś cache).
>>
> Zawsze jest to opóźnienie - szczególnie w przypadku obrazków wysokiej
> jakości. Od strony serwera jakby nie patrzeć muszę zawsze wykonać jakiś
> kod... niech to będzie nawet analiza pierwszych iluśtam bajtów :(

No i? Dla serwera to pestka (na serwie możesz mieć n-megabitowe łącze, a
nie n-kilobitowe, jak u klienta)

> To co mi się w tej chwili nasunęło to wykorzystanie XMLHttpRequest
> (sprawdzenie rozmiarów obrazka może być zaszyte w dość prostym i szybkim
> module Apacza) i na podstawie tego co dostanę z serwera otwarcie okna w
> określonym rozmiarze - ale czy to nie jest wyprawa z czołgiem na mrówkę?

Eee, nie przesadzajmy z AJAX-modą.

window.open("http://serwer.z.php/otwieraczka?url=http://twoj.biedny.serwer/obrazek.jpg")

--
porneL




porneL - 23-10-2005 18:14

  On Fri, 07 Oct 2005 18:40:42 +0100, porneL <pornel@despammed.com> wrote:

>> To co mi się w tej chwili nasunęło to wykorzystanie XMLHttpRequest
>> (sprawdzenie rozmiarów obrazka może być zaszyte w dość prostym i szybkim
>> module Apacza) i na podstawie tego co dostanę z serwera otwarcie okna w
>> określonym rozmiarze - ale czy to nie jest wyprawa z czołgiem na mrówkę?
>
> Eee, nie przesadzajmy z AJAX-modą.
>
> window.open("http://serwer.z.php/otwieraczka?url=http://twoj.biedny.serwer/obrazek.jpg")

No dobra, ten przykład jest głupi :)

Ale można pobrać wymiary jakoś tak: <script
src="http://serwer.z.php/otwieraczka?url=http://twoj.biedny.serwer/obrazek.jpg"
/>

--
porneL




ethanak - 23-10-2005 18:14

  On 2005-10-07 19:55, porneL wrote:
> On Fri, 07 Oct 2005 18:40:42 +0100, porneL <pornel@despammed.com> wrote:
>
>
>>> To co mi się w tej chwili nasunęło to wykorzystanie XMLHttpRequest
>>> (sprawdzenie rozmiarów obrazka może być zaszyte w dość prostym i szybkim
>>> module Apacza) i na podstawie tego co dostanę z serwera otwarcie okna w
>>> określonym rozmiarze - ale czy to nie jest wyprawa z czołgiem na mrówkę?
>>
>>
>> Eee, nie przesadzajmy z AJAX-modą.

A, wcale nie jestem miłośnikiem czy nawet zwolennikiem AJAXa. Chodzi mi
raczej o coś w stylu (w dużym uproszczeniu):

request.open(GET,
"http://moj.serwer.bez.php/modules/otwieracz?"+
encodeURIComponent(adres));
request.send(null);
eval(request.responseText);

gdzie moduł (nie skrypt w php, chodzi o te mikrosekundy) otwieracz
zwraca po prostu linijkę:

window.open(...);

z odpowiednimi parametrami.

[...]

> Ale można pobrać wymiary jakoś tak: <script
> src="http://serwer.z.php/otwieraczka?url=http://twoj.biedny.serwer/obrazek.jpg"
> />

Rozumiem że ten php wypluwa z siebie document.write(cośtam) (najprościej
ale fujaste strasznie) czy obrazki[url]={w:...,h:...}; (wymaga
dodatkowego skryptu, ale to pryszczyk)

Tylko do czego mi potrzebne wymiary 10 obrazków od razu przy ładowaniu
strony? Po co mój i tak zapracowany Apacz ma zajmować się przekazywaniem
rozmiarów obrazków gościowi co ogląda stronę monitorem brailowskim?
Strona jest statyczna, Apacz ma ją pobrać i wyświetlić - tu nie chodzi o
łącze od strony serwera ale o prosty fakt, że procesorów i pamięci jakoś
ostatnio za darmo nie rozdają... czyli wszystkie operacje powinny być
wykonywane wyłącznie wtedy, gdy użytkownik sobie tego zażyczy, a nie na
zapas.

Zresztą - gdyby trzeba było pobierać rozmiary obrazków przy ładowaniu
strony to pewnie SSI (nawet z drobną modyfikacją mod_include) to by było
lepsze rozwiązanie...

Jeszcze lepsze by było coś w stylu:

body.onload="window.sizeToContent()"

co oczywiście działa świetnie pod warunkiem że korzystam z Gecko i w
chwili wykonania sizeToContent mam ustawiony odpowiedni przywilej - nie
jestem pewien jak zareagowałby przeciętny Kowalski na pojawiającąsię
przy próbie obejrzenia zdjęcia informację "Skrypt zażądał rozszerzonych
uprawnień które mogą być niebezpieczne bla bla bla" ;)

ethanak

PS. A w sumie najlepsze by było coś takiego:

<a href="obrazek.jpg" onclick="window.showImage('obrazek.jpg');return
false">

problem w tym że metoda showImage na razie nie istnieje i nic jej
istnienia nie zapowiada :(




porneL - 23-10-2005 18:14

  On Sat, 08 Oct 2005 06:34:10 +0100, ethanak <ethanak@p01ip.c0m> wrote:

>>> Eee, nie przesadzajmy z AJAX-modą.
>
> A, wcale nie jestem miłośnikiem czy nawet zwolennikiem AJAXa. Chodzi mi
> raczej o coś w stylu (w dużym uproszczeniu):
>
> request.open(GET,
> "http://moj.serwer.bez.php/modules/otwieracz?"+
> encodeURIComponent(adres));
> request.send(null);
> eval(request.responseText);
>
> gdzie moduł (nie skrypt w php, chodzi o te mikrosekundy) otwieracz
> zwraca po prostu linijkę:
>
> window.open(...);
>
> z odpowiednimi parametrami.

Nie przejdzie. Window.open będzie już przyblokowane przez popup blockery
(AFAIK bo będzie już wywołane z callbacku, a nie z wątku onclick).

Poza tym dlaczego się siłować w momencie kliknięcia? Nie lepiej podczepić
script, który poda wszystkie wymiary wcześniej?

>> Ale można pobrać wymiary jakoś tak: <script
>> src="http://serwer.z.php/otwieraczka?url=http://twoj.biedny.serwer/obrazek.jpg"
>> />
>
> Rozumiem że ten php wypluwa z siebie document.write(cośtam) (najprościej
> ale fujaste strasznie) czy obrazki[url]={w:...,h:...}; (wymaga
> dodatkowego skryptu, ale to pryszczyk)

Ależ nie. Jestem wrogiem doc.write :) Może być coś w stylu JSON, czyli
wyplucie tablicy, którą sobie onclick użyje.

> Tylko do czego mi potrzebne wymiary 10 obrazków od razu przy ładowaniu
> strony? Po co mój i tak zapracowany Apacz ma zajmować się przekazywaniem
> rozmiarów obrazków gościowi co ogląda stronę monitorem brailowskim?

Po to, żeby było szybciej. Jeśli zrobisz sobie cache wymiarów, to Twój
apacz się nie napracuje.

Poza tym kto Ci daje zlecenia na strony o ruchu przymulającym Apache, a
bez możliwości użycia porządnego CMS i bazy danych!?

> PS. A w sumie najlepsze by było coś takiego:
>
> <a href="obrazek.jpg" onclick="window.showImage('obrazek.jpg');return
> false">
>
> problem w tym że metoda showImage na razie nie istnieje i nic jej
> istnienia nie zapowiada :(

Istnieje. Mi w Operze <a href="obrazek.jpg"> wykonuje showImage. Baa,
nawet walnięcie spacji wywołuje mi wtedy showSlideshow().

--
porneL




ethanak - 23-10-2005 18:15

  On 2005-10-08 15:32, porneL wrote:
>[...]
>
> Nie przejdzie. Window.open będzie już przyblokowane przez popup
> blockery (AFAIK bo będzie już wywołane z callbacku, a nie z wątku
> onclick).

Kur... faktycznie - mozillowy sposób myślenia się mści, człowiek
zapomina że reszta świata olewa trzeci parametr request.open :(

I pomyśleć, że nie mogę skorzystać z istniejących mechanizmów
przeglądarki bo iluśtam bęcwałów nadużywa ich do tego stopnia, że
normalny człowiek na dzień dobry owe mechanizmy wyłącza :(

>
> Poza tym dlaczego się siłować w momencie kliknięcia? Nie lepiej
> podczepić script, który poda wszystkie wymiary wcześniej?
>

Kombinuję cały czas jak to sensownie zrobić. W momencie kliknięcia
najbardziej by mi pasowało - ale jak widzę niespecjalnie się da.

Co nie znaczy że się poddałem :)

[...]

> Poza tym kto Ci daje zlecenia na strony o ruchu przymulającym Apache,a
> bez możliwości użycia porządnego CMS i bazy danych!?

Sam sobie takie daję niestety - za dużo tłumaczenia dlaczego bo o tym
można książkę napisać, w każdym razie sytuacja wygląda w uproszczeniu
tak, że istnieje coś w rodzaju cms-a, istnieje baza danych, tylko nie
zawsze z przyczyn czysto technicznych może zawierać informacje o obrazku.
>
[...]
>> problem w tym że metoda showImage na razie nie istnieje i nic jej
>> istnienia nie zapowiada :(
>
>
> Istnieje. Mi w Operze <a href="obrazek.jpg"> wykonuje showImage. Baa,
> nawet walnięcie spacji wywołuje mi wtedy showSlideshow().
>

Tak - tylko nie chodzi tu o Ciebie z Operą (która zresztą ma własne
mechanizmy oglądania obrazków - IMHO bardzo wygodne) czy mnie z FF (jak
mi będzie potrzebne window.showImage to sobie napiszę, zresztą
oglądaczka obrazków podobna do tej Operowej też jest), a o przeciętnego
Kowalskiego z (nIEstety) wiadomym parszywym ustrojstwem do obglondywania
stronek...

<div class="dream">
Gdyby Kowalski mógł sobie wybrać, czy obrazek otworzy się w nowymoknie,
automatycznie dopasowanym do rozmiaru, w nowym panelu czy w tym samym,
czy w ogóle w jakimś specjalnym miejscu do oglądania obrazków
przeznaczonym... to ja bym wtedy musiał napisać tylko
<a href="obrazek.jpg"> i życie stałoby się prostsze...
</div>

Wracajmy do normalnego życia - gdzie to ja mam ten opis API Apacza...

ethanak




dk75 - 23-11-2005 11:07

  Marcin wrote:

> Używam funkcji wyświetlającej nowe okienko:
> function DisplayWindow(url) {
> var Win = window.open(url, "displayWindow", 'scrollbars, resizable,
> height=200, width=450');
> }
> czy istnieje możliwość, aby nie podawać height i width, a okienko samo
> dostosowało swój rozmiar do zawartości?

Otwierasz okienko z małymi rozmiarami (jak potrafisz to ukryte, ja
jeszcze nie próbowałem - na razie za cienki jestem ;PPPp), wpisujesz w
nie obrazek, odczytujesz jego oryginalne rozmiary, przekazujesz do
openera, zamykasz okienko i otwierasz docelowe z pobranymi rozmiarami.

Próbowałem zrobić jeszcze preload i odczytywanie z Array ale sprawdzanie
czy obrazek już się załadowaj jest powyżej moich sił.
Nie wiem dlaczego ale właściwości objektu "Image" się nie odświerzają.
Pętla "while(!array[x].complete){}" wpada w infinite-loop (tak samo
'array[x].width' - wartość "undefined").
Sprawdzane na FF1.0.7 jak i IE 6.0 na localhoście - przynajmniej skrypt
jest przerywany. Na zdalnym hoście jeszcze gorzej, bo FF się blokuje i
zjada pamięć i CPU i trzeba go killować z menadżera zadań.

"resizeTo" można sobie darować.
Pod IE otwarcie okienka 640x480 i zrobienie "resizeTo(640,480);"
powoduje zmniejszenie okienka ;PPPp

--
Krzysztof 'DK75' Duchnowski
GetFirefox - http://www.spreadfirefox.com/?q=affi...p;id=0&amp;t=1
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Re: [MySQL] wyswietlenie NIPu jako ciąg cyfr bez spacji i myślników Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jest brak jest danej wartosci [MS SQL] Zapytanie wyswietlajace (lub nie) adresy na podstawie warunku [MSSQL] edycja rekodu w tabeli i wyswietlanie danych BDGrid + Postgresql i wyswietlenie 100000 rekordow - problem [MS SQL] Wyswietlanie fragmentu komorki tekstowej [Firebird] Łączenie dwóch tabel i wyświetlenie różnicy skrypt wyswietlajacy pomniejszony obrazek w gd [mysql] wyswietlenie drogi do galezi drzewa W czym wyswietlac schemat bazy danych ORACLA
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com