witam
do budowy swojej strony uzywalem pewnego javaskryptu otwierajacego nowe okno ze zdjeciem (bez scroli, przyciskow itp.)
test strony w operze 6.05 - otwiera sie tylko puste okno
zdazylem wywalic skrypt z galerii, zostalo tylko troche na innych podstronach, w tym czasie pojawiaja sie opery z rodziny 7.xx , gdzie skrypt juz dziala poprawnie ...
troche mnie to zdziwilo, bo zawsze dostawalo sie autorowi skryptu za postawe "dziala w IE - nic wiecej mi nie potrzeba" , teraz jakby opera dostosowala sie do skryptu
chyba, ze jest cos, o czym powinienem w tym przypadku wiedziec i nie wypisywac glupot
Daj kod skryptu najlepiej
<SCRIPT LANGUAGE="JavaScript">
nn4=(document.layers) ? true : false;
ie4=(document.all) ? true : false;
Nowe=null;
function Otworz(w,s,src) {
if (Nowe) {
if (ie4) Nowe.close();
else if (nn4) Nowe.closed;
Nowe=null
};
Nowe=window.open("", "","toolbar=no,menubar=no,location=no,personalbar=no,scrollbars=no,status=no,directories=no,resizable=no,top=10,left=10,height="+w+",width="+s);
Nowe.document.write("<HTML><HEAD><STYLE>BODY{BACKGROUND-REPEAT:no-repeat}</STYLE></HEAD><BODY BACKGROUND="+src+"></BODY></HTML>")
Nowe.focus()
}
</SCRIPT>
i oczywiscie potem:
<a href="javascript:Otworz(500,400,'foto.jpg')">
Originally posted by yasny
<SCRIPT LANGUAGE="JavaScript">
nn4=(document.layers) ? true : false;
ie4=(document.all) ? true : false;
Nowe=null;
function Otworz(w,s,src) {
if (Nowe) {
if (ie4) Nowe.close();
else if (nn4) Nowe.closed;
ciach
Bosz
chcialem dodac, ze jestem tylko skromnym rzemieslnikiem w html-u
Re: Wyjatek potwierdza regule?
Originally posted by yasny
troche mnie to zdziwilo, bo zawsze dostawalo sie autorowi skryptu za postawe "dziala w IE - nic wiecej mi nie potrzeba" , teraz jakby opera dostosowala sie do skryptu
chyba, ze jest cos, o czym powinienem w tym przypadku wiedziec i nie wypisywac glupot
W Operze 7.x poprawiono obsługę niestandardowej kolekcji document.all i pewnie dlatego skrypt zaczął działać.
Re: Re: Wyjatek potwierdza regule?
Ale przecież document.all nie jest nigdzie w skrypcie używany (poza wykrywaniem IE). Więc to chyba nie to.Originally posted by quiris
W Operze 7.x poprawiono obsługę niestandardowej kolekcji document.all i pewnie dlatego skrypt zaczął działać.
Sądząc z opisu błąd musiał być gdzieś w okolicach document.write.
Wlasnie bo co to jest za obiekt nowe.dokument? Ja sie zupelnoe nie znam na JS wiec prawdopodobnie to jest IE-JavaScript czyli charakterystyczny dla IE, a Opera w 7 wiele takich charakterystycznych dla IE rzeczy obsluguje zarowno w JS jak i HTML (patrz np marquee)
Originally posted by yasny
<SCRIPT LANGUAGE="JavaScript">
nn4=(document.layers) ? true : false;
ie4=(document.all) ? true : false;
Squeal.. Jakie wykrywanie IE?? Nie znam się na JS, nie wiem nawet co robi document.all, ani document.layers, ale obserwując składnię, jak dla mnie jasne jest, że te funkcje w nawiasach zwracają jakąś zmienną logiczną. Jeśli któraś z tych dwóch operacji zostanie wykonana pomyślnie, zostane zwrócony pierwszy argument do odpowiadającej zmiennej - prawda; jeśli natomiast operacja się nie wykona, zostanie zwrócony fałsz logiczny.
BTW: A nie można uprościć? Zostawić same nawiasy i usunąć wszystko od znaków zapytania do końca linii? Chyba, że składnia nie pozwala.
Ale jak dla mnie to naprawdę super śmieciowy kod, z zamierzchłej epoki walki IE4 z NN4. Wtedy może się pisało takie skrypty, ale dziś to absurd.
A skąd wniosek, że skrypt nie działa w Operze 6 z powodu słabej obsługi przez nią document.all? Jak dal mnie, chodzi o ten fragment:
Originally posted by yasny
if (ie4) Nowe.close();
else if (nn4) Nowe.closed;
Nowe=null
Wyglada mi na to, że są sprawdzane dwa warunki, a jeśli przeglądarka nie zwróci żadnej z nich, to następuje bezwarunkowe przejście do ostatniej opcji - i wtedy okno nie jest otwierane.
Tak to widzę. Jeśli gdzieś się mylę, proszę mnie poprawić.
Ja też tak przypuszczałem, ale mi wyszło na to, że jak przeglądarka nie jest ani IE4+ ani NN4+ to okno nie jest wtedy zamykane (close/closed). Dziwne.
Originally posted by michmaj
Ja też tak przypuszczałem, ale mi wyszło na to, że jak przeglądarka nie jest ani IE4+ ani NN4+ to okno nie jest wtedy zamykane (close/closed). Dziwne.
Nie wiem co robią dokładnie te funkcje, ale chyba można założyć, że jeśli zostanie wykryte IE, to nowe okno się otwiera, a nie zamyka, prawda?
Tak przypuszczam, w kazdym razie od razu sie zlapalem za glowe jak zobaczylem to if IE i if NN (rozumujac pod katem jezyka angielskiego ani JS).
P.S. Wojciech cos dawno nie walnales zadnego 20-punktowego posta na angielskiej czesci. Co sie dzieje.
Originally posted by michmaj
P.S. Wojciech cos dawno nie walnales zadnego 20-punktowego posta na angielskiej czesci. Co sie dzieje.
listy błędów i pomysłów na usprawnienia?
ehm, tak jakoś ostatnio zająłem się bardziej osiołkami.. I trochę mniej czasu mam wieczorami, bo przeprowadziłem się, zmieniłem pracę i później wracam do domu.
Poza tym bety wersji 7.20 są naprawdę dobrej jakości. No i nie ma póki co tak dużo nowej funkcjonalności do komentowania.
Nie będę im przypominał o pomysłach na funkcjonalność, które zgłosiłem wcześniej - wierzę, że gdzieś to odnotowali i jeszcze dodadzą. Widać, że beta1 była bardzo skoncentrowana na samym enginie, beta2 już bardziej na zmiany w interfejsie i nowe funkcje. Kolejne bety mogą przynieść kolejne rewelacje. Czekam cierpliwie.
Ale mam coś w zanadrzu - coś specjalnego, czego jeszcze nie publikowałem.
Ładną listę uwag co jeszcze można usprawnić w M2. Zbieram się od dłuższego czasu i nie mogę, ale już zdecydowanie najwyższy czas. Zrobię to na pewno w tym tygodniu. Dziś, może jutro. Ale.. może na grupy. A jak nie będzie dużego odzewu, to może dopiero wtedy na forum.