Niedziałający w Operze skrypt na stronie

w dziale Opera
Zbynio napisał(a):

Przede wszystkim chciałbym się przywitać bo to mój pierwszy tutaj post bigsmile WITAM WSZYSTKICH bigsmile
Z Opery korzystam od nr 7.11. Teraz mam 7.54u2 i przymierzam się do zakupu licencji na 8 bo innej przeglądarki nie chcę. O!. Dotychczas nie miałem większych problemów z Operą. A jak były to zawsze znajdowałem odpowiedź na moje pytania na tym forum. I za to dziękuję Wszystkim bigsmile
A to mój problem:
Na tej stronie >tu< po lewej stronie jest menu. To menu nie działa gdy mam włączone "przedstawiaj się jako Opera"
Natomiast działa bez problemu przy włączonym "Przedstawiaj się jako MSIE"
W czym może być problem? Mam kontakt z webmasterem i ewentualnie przekażę jemu Wasze sugestie.
Dziękuję i pozdrawiam bigsmile

andol napisał(a):

Re: Niedziałający w Operze skrypt na stronie

Originally posted by Zbynio
Mam kontakt z webmasterem i ewentualnie przekażę jemu Wasze sugestie.
Dziękuję i pozdrawiam bigsmile



A czy webmaster wie, jaki #%!%## kod wykorzystuje na swojej stronie? wink

if (navigator.userAgent.indexOf("MSIE")    != -1 &&
	navigator.userAgent.indexOf("Windows") != -1 &&
	navigator.appVersion.substring(0,1) > 3)
	{
    var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
    var ns=document.getElementById&&document.all
    }
    else
	{
    var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
    var ns=document.getElementById&&!document.all
    }

Zbynio napisał(a):

Chyba nie skoro coś skopał bigsmile
A jaki powinien być prawidłowy kod?

Zajec napisał(a):

należy zupełnie usunąć usunąć[php]if (navigator.userAgent.indexOf("MSIE") != -1 &&
navigator.userAgent.indexOf("Windows") != -1 &&
navigator.appVersion.substring(0,1) > 3)
{
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns=document.getElementById&&document.all
}
else
{
var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns=document.getElementById&&!document.all
}[/php]

starstarstar

[php]lista =ns?document.getElementById('li_'+nazwa):ie?document.all['li_'+nazwa]:undefined;[/php]które wystepuje w funkcji SwitchList oraz SwitchList2 należy zamienić na[php]lista =document.getElementById('li_'+nazwa);[/php]

starstarstar

[php]lista2 =ns?document.getElementById('li_'+do_ukrycia):ie?document.all['li_'+do_ukrycia]:undefined;[/php]z funkcji HiddeLists należy zamienić na
[php]lista2=document.getElementById('li_'+do_ukrycia);[/php]

starstarstar

Po tych zmianach strona będzie oczywiście działać w Operze, Firefoksie, Konquerorze i IE w wersji 5 i nowszej.

Zbynio napisał(a):

Dziękujemy (ja i webmasterka) serdecznie za pomoc bigsmile
Stronę budują i prowadzą wolontariusze. Nawet na opłatę za serwer dobrowolnie składali się forumowicze.
Tym bardziej pomoc okazana przez Was jest cenna smile
Dziękuję i pozdrawiam.
Zbyszek

No i już działa bigsmile bigsmile bigsmile bigsmile
Jeszcze raz dziękuję:D

Zajec napisał(a):

Widzę już zmiany, brawo :-)

star star star

Jeśli wolno wtrącić jeszcze słówko to sugerowałbym modyfikację

[php] if(document.all){
wPre='document.all[';
wPost=']';
} else {
if(document.getElementById){
wPre='document.getElementById(';
wPost=')';
}
}[/php]na samo[php] wPre='document.getElementById(';
wPost=')';[/php]Powód jest taki sam jak poprzednio - konstrukcja document.all jest przestarzała, a jej zastępczyni document.getElementById jest obsługiwana przez wszystkie nowoczesne silniki.

star star star

onclick='document.lang.submit();'
nastomiast wypadałoby zamienić na
onclick='document.forms['lang'].submit();'


star star star

I ostatnia sugestia: w Operze treść strony ma pewien odstęp z lewej i prawej strony. Może wydawać się dziwne, ponieważ określiliście konkretnie margin dla body, ale zapomnieliście o padding. Opera domyślnie ma coś w stylu
body {
margin: 0;
padding: 5px;
}
Więc do pliku arkusza stylów przy definicji body należałoby jeszcze dodać
padding: 0;

star star star

Poza tym przetestuj skrócik ctrl+alt+v podczas oglądania swojej strony. Opera otworzy stronę validatora z poelceniem sprawdzenia aktualnie przeglądanej strony. Jest jeszcze kilka błędów do poprawy, gdybyście nie mieli co robić ;-)

squeal napisał(a):

Originally posted by Zajec
Jeśli wolno wtrącić jeszcze słówko to sugerowałbym modyfikację


E no, nie ma sensu. Niczego to przecież nie psuje, a te parę gruchotów jednak dzięki temu może stronę obsłuży. Jeśli już, to zamieniłbym ify miejscami, coby Opera i inne kHTML-e dostawały poprawny kod.

quiris napisał(a):

padding: 5px;

padding: 8px;