idarek
4.06.2004, 11:30:10
Ostatnio zaczełem przerabiać po mału moją stronę na zgodną ze standardami W3C , i już jedną podstrone zrobiłem prawie całą, jdnakże w walidatorze na stronie
http://watson.addy.com/ mam pokazany błąd:
na
http://idarek.webpark.pl/galeria.htm
Kod
line #59: value for attribute Start (WhereHash;) of element = should be quoted (i.e. Start="WhereHash;")
line #61: value for attribute + (2;) of element = should be quoted (i.e. +="2;")
line #62: value for attribute (Count (WhereHash;) of element = should be quoted (i.e. (Count="WhereHash;")
line #62: value for attribute < (email.length;) of element = should be quoted (i.e. <="email.length;")
line #69: unknown element <=>.
line #69: <=> cannot appear in the HEAD element.
line #70: no closing </SCRIPT> seen for <SCRIPT> on line 47.
i nie mam pojęcia jak to poprawić, a nie chce rezygnować z tego skryptu na stronie, bo to jest dobry skrypt przeciw spamowi ze strony robotów internetowych. Może ktoś wie jak to poprawić?
kszychu
4.06.2004, 11:37:27
A próbowałeś zastosować się do wskazówek walidatora? (quoted = ujęte w cudzysłowy)
idarek
4.06.2004, 11:45:10
tak, ale wtedy skrypt przestaje działać
kszychu
4.06.2004, 11:49:16
To może zapodaj tutaj ten skrypt, bo link jakiś niedziałający jest.
idarek
4.06.2004, 12:32:28
link działa... (ten z ../galeria.htm)
no ale oto ten skrypt:
Kod
w <head>
<SCRIPT language="JavaScript" type="text/javascript">
function Transpose(String){
var email ="idarek.prv.pl@webmaster"
var TempBefore = "";
var TempAfter = "";
var NewString = "";
var Start = 0;
var WhereHash = email.indexOf ("@");
for (Count = 1; Count <= WhereHash; Count ++){
TempBefore += email.substring (Start, Count);
Start++
}
Start = WhereHash;
Start ++
WhereHash +=2;
for (Count = WhereHash; Count <=email.length; Count++){
TempAfter +=email.substring (Start, Count)
Start++
}
NewString = TempAfter +"@" + TempBefore;
parent.location = "mailto:"+NewString;
}
</SCRIPT>
Kod
w <body>
<a title="Webmaster" href="JavaScript:Transpose()">Webmaster</a>
kszychu
4.06.2004, 12:36:30
Może spróbuj po Start++ powstawiać średniki?
idarek
4.06.2004, 13:11:36
Start++"" tak? to nic nie da, odrazu jak coś wstawie nie tak to skrypt przesdtaje działać
kszychu
4.06.2004, 13:14:28
Jeśli to " wg Ciebie jest średnik to ja wymiękam :-D
; to jest średnik!
Czyli:
Start++;
idarek
4.06.2004, 13:25:01
no pomyliło mi sie :)
hm... niestet, nic nie pomogło nadal jest:
Kod
line #59: value for attribute Start (WhereHash;) of element = should be quoted (i.e. Start="WhereHash;")
line #61: value for attribute + (2;) of element = should be quoted (i.e. +="2;")
line #62: value for attribute (Count (WhereHash;) of element = should be quoted (i.e. (Count="WhereHash;")
line #62: value for attribute < (email.length;) of element = should be quoted (i.e. <="email.length;")
line #69: unknown element <=>.
line #69: <=> cannot appear in the HEAD element.
line #70: no closing </SCRIPT> seen for <SCRIPT> on line 47.
kszychu
4.06.2004, 13:27:48
Na moje oko to masz jeden } za dużo...
idarek
4.06.2004, 13:34:31
jeśli chodzi ci o ten ostatni to nie jest za dużo, jak go wywale to skrypt nie działa
Pedros
4.06.2004, 14:19:00
A próbowałeś może wstawić skrypt w
Kod
<!-- <![CDATA[
.
.
.
]]> -->
</script>
Tak jak jest to np. na wp.pl
Kod
<script language="JavaScript" type="text/javascript">
<!-- <![CDATA[
if (navigator.userAgent.toLowerCase().indexOf('webtv') > -1) {
//alert('WEBTV');
} else if (navigator.userAgent.toLowerCase().indexOf('windows ce') > -1) {
//alert('POCKET PC');
} else if (navigator.userAgent.toLowerCase().indexOf('wince') > -1) {
//alert('POCKET PC')
} else if (!document.getElementById) {
top.location.href="index.html?view=index_html";
}
// ]]> -->
</script>
Z tego co pamiętam, zaleca się wstawiać skrypty w coś takiego, więć powinno działać i walidator raczej się nie czepia...
Draugfor
4.06.2004, 15:48:53
Cytat
Z tego co pamiętam, zaleca się wstawiać skrypty w coś takiego, więć powinno działać i walidator raczej się nie czepia...
Niezupelnie.
Jesli zalezy nam na zgodnosci ze starymi przegladarkami, skrypty powinno sie wstawiac w znacznikach komentarzy html <!-- -->.
Z kolei nowe parsery xml uznaja to za komentarz i pomina, wiec rozwiazazniem kompromisowym i najlepszym jest umieszczenie skryptu w oddzielnym pliku, co i Tobie, idarek, radze.
Pozdrawiam!
idarek
4.06.2004, 16:51:57
jak umieszcze ten skrypt w innym pliku to zaraz po odwołaniu się do niego wyłączają się inne, np. data na stronie.... niestety próbowałem różnie umieszczać skrypty i zawsze coś jest kosztem czegoś... a nie znacie jakiegoś skryptu podobnego to tego co podałem powyżej do ukrywania maila przed robotami internetowymi?
dr_bonzo
4.06.2004, 16:58:00
nie jest to chyba najlepszy sposob na ukrycie maila -- roboty i tak maja dostep do plikow .js, czy skryptow na stronie i moga odczytac wartosc
Kod
var email ="idarek.prv.pl@webmaster"
Jabol
4.06.2004, 17:10:29
proszę w dalszej części topicu uzywać bbcode (thx hwao). Byłoby miło, gdyby niezgodne posty wyżej zostały również wyedytowane.
Jeżeli postulat nie będzie spęłniony to .... $topic->move("/dev/null"); (albo inne miejsce gdzie będzie bardziej bezpieczny)...
idarek
5.06.2004, 13:07:25
może i mogą odczytać maila, ale to nie liczne, jak dotąd dostałem tylko 5x spam na adres ze stronki, a jak by wogule nie było skryptu to by była masakra
Dominik
5.06.2004, 13:30:26
Jesli idze o znaki, w ktorych dozwolone atrybuty to w XHTML oprocz znaku " mozna stosowac '
Ale ale moze przede wszystkim zastosowac sekcje CDATA i wtedy walidator nie powinien sie czepiac.
idarek
5.06.2004, 16:10:40
ok dzieki, jak będe miał niedługo więcej czasu to nad tym posiedze, a co do znaczków " lub ' to ja mam strone w html a nie xhtml wiec validator sie może czepiać, narazie wszystko bede robił z ", jak naucze sie czegos nowego lub przejde na inny standard strony to nie problem bedzie to zmienić
pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.