Przede wszystkim chciałbym się przywitać bo to mój pierwszy tutaj post WITAM WSZYSTKICH
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
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
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
A czy webmaster wie, jaki #%!%## kod wykorzystuje na swojej stronie?
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 }
Chyba nie skoro coś skopał
A jaki powinien być prawidłowy kod?
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]
[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]
[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]
Po tych zmianach strona będzie oczywiście działać w Operze, Firefoksie, Konquerorze i IE w wersji 5 i nowszej.
Dziękujemy (ja i webmasterka) serdecznie za pomoc
Stronę budują i prowadzą wolontariusze. Nawet na opłatę za serwer dobrowolnie składali się forumowicze.
Tym bardziej pomoc okazana przez Was jest cenna
Dziękuję i pozdrawiam.
Zbyszek
No i już działa
Jeszcze raz dziękuję:D
Widzę już zmiany, brawo :-)
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.
onclick='document.lang.submit();'nastomiast wypadałoby zamienić na
onclick='document.forms['lang'].submit();'
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;
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ć ;-)
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.
padding: 8px;padding: 5px;