Autor Zpráva
tmtm
Profil *
Ahoj,

vcelku náhodně jsem si všiml, že mi ve firefoxu na http://www.hlavolam.maweb.eu nefungují kotvy (záložky) v pravé části stránky (sekce novinky - záložky s textem "video"). V IE se zdá, že kotvy fungují a ve FF bych řekl, že v minulosti fungovaly taky. Proč nefungují teď / jak je zas zprovoznit? Resp. ty kotvy se chovají tak, že jednou z dvaceti kliknutí se kotva "načte", ve zbylých 19 kliknutí se načte pouze začátek stránky s kotvou...

Díky za každou radu
Joker
Profil
tmtm:
Mně to funguje, v Opeře i ve Firefoxu.

jednou z dvaceti kliknutí se kotva "načte", ve zbylých 19 kliknutí se načte pouze začátek stránky s kotvou
To je nejspíš způsobené tím, že prohlížeč ještě čeká na načtení stránky.
Prohlížeč postupně vykresluje ty části stránky, které už jsou načtené, proto vršek stránky zobrazí hned. S přechodem na kotvu ale čeká na načtení celé stránky, aby věděl, kam má přejít.
Když načtení něčeho na stránce dlouho trvá, bude to vypadat tak, že se nejdřív zobrazí vršek a po chvíli prohlížeč přeskočí na tu kotvu.
tmtm
Profil *
Joker:
To je nejspíš způsobené tím, že prohlížeč ještě čeká na načtení stránky.
Díky za tip. Ještě před podáním dotazu jsem zkoušel dát firefoxu nějaký čas na načtení (řádově minuty), ale výsledek byl stejný - narozdíl od IE kotvy nefungují. Teď to prohlížím na českém Firefoxu 23.0.1 pro Windows, ale nefunguje to i na starší verzi...

Mně to funguje, v Opeře i ve Firefoxu.
Díky za info. Stejně by mě ale pořád zajímalo, v čem je vlastně chyba...
kaktuss
Profil
[#1] tmtm
Namiesto <a name="videa-svetovych-rekordu"><h2>Videa světových rekordů</h2></a>

použi radšej <h2 id="videa-svetovych-rekordu">Videa světových rekordů</h2>
Petr ZZZ
Profil
Mně se v FF odkaz na kotvu načetl.

Nejsem si jistý, zda to tomu rolování nebo něčemu jinému vadí, ale intuitivně bych do adresy takhle tečku nepsal:

<a href="rubikova-kostka-3x3x3.php#intuitivni-metoda-skladani-hlavolamu-3.krok">3. krok</a>

Obecně bych byl s tečkou opatrný a psal ji v kódu jen tam, kde jsem si jistý, že tam být musí (například před typem souboru – stranka.html, obrazek.jpg, stranka.php atp.). V běžném textu samozřejmě tečka má svůj význam a v tomto smyslu je i viditelný kotevní text odkazu běžný text, takže tahle tečka je v pořádku:

<a href="rubikova-kostka-3x3x3.php#intuitivni-metoda-skladani-hlavolamu-3krok">3. krok</a>

Jestli se stránky pomalu načítají, dal by se kód o dost zkrátit, když místo té podivné SEO:
<a href="rubikova-kostka-3x3x3.php#intuitivni-metoda-skladani-hlavolamu-3-krok">3. krok</a>
vymyslíš něco kratšího, třeba:
<a href="rubikova-kostka-3x3x3.php#3-krok">3. krok</a>

Dodatek: Jestli ale vedou na stránky odkazy zvenku, které nemůžeš opravit, asi bych stávající adresy raději už neměnil.
peta
Profil
Ja mel problem v thunderbirdu se zalozkama, ktere meli prvni znak minusko. Tusim, ze to jeden prohlizec neumel otevrit a odskocit, musela se stranka obnovit nebo zkopirovat do adresniho radku prohlizece.
"-span-ii--studijn--z-le-itosti-a-organizace--span-"
zapis-z-kolegia-dekana-14.-1.-2013#-span-ii--studijn--z-le-itosti-a-organizace--span-

Petr ZZZ
Na "3-krok" bych byl tez opatrny, pravidla pro id, name rikaji, ze musi zacinat pismenem. Kdyz se tech starych pravidel budes drzet, mas jistotu, ze to bude fungovat vzdy.
Chamurappi
Profil
Reaguji na peta:
pravidla pro id, name rikaji, ze musi zacinat pismenem
Pravidla pro name nic takového neříkají. Do name jde napsat cokoliv.


Reaguji na Petra ZZZ:
Obecně bych byl s tečkou opatrný
Já bych si troufnul dát do kotvy skoro cokoliv.
Kdyby tečka vadila, velmi pravděpodobně by vadila vždy a ne jen občas.
peta
Profil
Chamurappi:
Nelzi :)

1. http://www.w3.org/TR/REC-html40/struct/links.html#adef-name-A
2. kliknes na cdata
3.
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
juriad
Profil
ID a NAME je něco jiného než CDATA, který je definovaný nad nimi.
Krásně jsi nám dokázal opak.
peta
Profil
juriad:
??? Vubec nevim, co se snazis rici
"name = cdata [CS]"
Tam je rovnitko. A kdyz se neco rovna, tak to rozhodne neznamena "neco jineho nez".
Soucasne to rovnitko popira vetu: "Pravidla pro name nic takového neříkají. Do name jde napsat cokoliv.", kdyz presne ten jeho odkaz prave to rika.
juriad
Profil
peta:
Z definice elementu a:
name        CDATA          #IMPLIED  -- named link end --
name = cdata [CS]
    This attribute names the current anchor so that it may be the destination of another link. The value of this attribute must be a unique anchor name. The scope of this name is the current document. Note that this attribute shares the same name space as the id attribute.
Klikneš na CDATA. Dostaneš se stránku http://www.w3.org/TR/REC-html40/types.html#type-cdata
V sekci 6.2 SGML basic types máš uvedenou definici CDATA.
Nepíše se tam nic o povolených znacích (kromě chování whitespaců).
To co jsi ty citoval se netýká typu CDATA, ale typů ID a NAME, které jsou definovane hned pod CDATA.
Chamurappi
Profil
Reaguji na peta:
Neumíš číst specifikace.
Jen atribut name u <meta> a atributy lang, hreflang a http-equiv mají hodnoty typu NAME. Pro <a name> platí jiná pravidla. Můžeš si to ověřit i v nějakém validátoru.
peta
Profil
juriad Jo, uz to chapu, jina odrazka, zkusil jsem si kliknout na jiny text nez cdata, treba name.
No, kazdopadne bych zustal u toho, ze doporucuji se ridit prave temi pravidly pro 'ID and NAME tokens'.
Chamurappi
Profil
Reaguji na peta:
Znáš nějaký konkrétní příklad prohlížeče/webu, kdy kotva začínající číslem nefungovala? Nebo zase blábolíš?
peta
Profil
To jsem nerikal.
Pouze jsem rikal, ze diky moznym problemum, bych se drzel pravidel pro id a name.
A ze v thunderbirdu kliknutim na odkaz se mi otevrel prohlizec (ted nevim, jestli ie nebo ff) a kdyz kotva zacinala minuskem, tak to neodskocilo. Ale, kdyz se v prohlizeci stranka obnovila nebo adresa prekopirovala do nej rucne, tak to slo.
Z duvodu nejiste interpretace prohlizecem nebo jinym programem bych se takovym kotvam vyhybal. Nic vic, nic min.
tmtm
Profil *
kaktuss:
Namiesto <a name="videa-svetovych-rekordu"><h2>Videa světových rekordů</h2></a>

použi radšej <h2 id="videa-svetovych-rekordu">Videa světových rekordů</h2>

Díky za tip. Bohužel, nefunguje mi ani jeden zápis (u obou se mi načte pouze začátek stránky stejným způsobem, jak již bylo psáno).

Zeptám se ještě jednou, protože jsem neviděl odpověď na otázku: co je příčinou takovéhoto chování FF? (navíc patrně jen některých verzí prohlížeče/počítačů)
kaktuss
Profil
tmtm:
Bohužel, nefunguje mi ani jeden zápis
Je to zvláštne, pretože spôsob, ktorý som uviedol, mám odskúšaný na browseroch Chrome, FF, Opera, Safari, IE, vrátane starých od IE7 vyššie.

Ináč mne tie odkazy, ktoré máš aktuálne na stránke, na FF fungujú.
tmtm
Profil *
kaktuss:
Zvláštní to je, na to se shodneme :-) Už jen proto, že v IE oba typy zápisů fungují, v FF očividně někdy ano (Joker, Petr ZZZ, kaktuss...) a někdy ne (tmtm). No nic, nechám tam všude <a name="videa-svetovych-rekordu"><h2>Videa světových rekordů</h2></a> a budu doufat, že návštěvník nebude mít "špatný" prohlížeč.
Petr ZZZ
Profil
tmtm:
Zkus vyjmout nadpis z té kotvy. Netuším, zda to pomůže, ale podle nějakých starších specifikací myslím nesměly být bloky (nadpis je blok) v kotvách. Takže to zkus ne takto...
<a name="vid">
  <h2>Videa</h2>
</a>
...nýbrž takto:
<a name="vid"></a>
<h2>Videa</h2>

Asi to s tím nemá nic do činění, nicméně kdyby se to spravilo, dej když tak vědět.
tmtm
Profil *
Petr ZZZ:
Takže to zkus ne takto...
>
>
>
<a name="vid">
<h2>Videa</h2>
</a>
>
...nýbrž takto:
>
>
<a name="vid"></a>
<h2>Videa</h2>

Díky za tip. Po přepsání na tento tvar a vyzkoušení v "mém" FF kotva skutečně odskočila na video. Při druhém až desátém pokusu však odkaz vedl pouze na začátek stránky. Tak jsem to změnil zas na druhý tvar (<h2 id="videa-svetovych-rekordu">Videa světových rekordů</h2>) a opět při prvním kliknutí vedl odkaz na video (a opět při druhém až desátém pokusu se načetl pouze začátek stránky). Tak jsem zkusil první tvar (<a name="videa-svetovych-rekordu"><h2>Videa světových rekordů</h2></a>) se stejným výsledkem.

Takže první kliknutí funguje, další z neznámého důvodu nefungují (resp. fungují jednou z dvaceti kliknutí).
margin
Profil *
tmtm:
Takže první kliknutí funguje, další z neznámého důvodu nefungují
Nevím co přesně myslíš, ale podobnou chybou trpěly starší verze Opery, napoprvé najela na kotvu, ale pokud uživatel odroloval, tak odkaz za tutéž kotvu nefungoval, ale fungovaly odkazy na všechny ostatní kotvy.
Nemám po ruce Firefox na vyzkoušení, ale nechová se stejně, jako kdysi Opera?
Chamurappi
Profil
Reaguji na tmtma:
Zkus si povypínat pluginy, může na to mít vliv některý z nich (podezříval bych ten Java applet).


Reaguji na peta:
Z duvodu nejiste interpretace prohlizecem nebo jinym programem bych se takovym kotvam vyhybal.
Co je na něm nejisté? Tobě někdy někde možná zlobily pomlčky na začátku názvu kotvy a vyvozuješ z toho, že by neměla fungovat čísla, protože sis špatně přečetl specifikaci.


Reaguji na kaktusse:
spôsob, ktorý som uviedol, mám odskúšaný
Máš nějaké informace o náhodných potížích se způsobem, který používá tmtm? Podařilo se ti najít příčinu?


Reaguji na Petra ZZZ:
Zkus vyjmout nadpis z té kotvy.
Kdyby zanoření nadpisu do odkazu vadilo, velmi pravděpodobně by vadilo vždy a ne jen občas.
tmtm
Profil *
margin:
Nevím co přesně myslíš, ale podobnou chybou trpěly starší verze Opery, napoprvé najela na kotvu, ale pokud uživatel odroloval, tak odkaz za tutéž kotvu nefungoval, ale fungovaly odkazy na všechny ostatní kotvy.
Nezkoušel jsem rolovat - vždy jsem kliknul na tlačítko "zpět" v horní liště FF. Ani ostatní kotvy nefungovaly.

Chamurappi:
Zkus si povypínat pluginy, může na to mít vliv některý z nich (podezříval bych ten Java applet).
Heureka. Díky. Po vypnutí pluginu java appletu kotvy fungují.

Ve starší verzi java appletu kotvy dost možná fungovaly korektně. Aby zas fungovaly správně, můžu udělat něco jiného než čekat na novější verzi java appletu (a k tomu ještě s nejistým výsledkem)?
Petr ZZZ
Profil
Chamurappi:
A proč ten Java applet nevadí vždy, ale jen občas?
Chamurappi
Profil
Reaguji na tmtma:
můžu udělat něco jiného než čekat na novější verzi java appletu (a k tomu ještě s nejistým výsledkem)?
Můžeš zkusit načítání appletu odložit. Vlepit ho do nějakého innerHTML až při události window.onload.
Nebo dát na jejich místa imitující obrázky a až při najetí myší je vyměnit za živé věci (pro inspiraci viz třeba Zpožděně načítáné YouTube video).


Reaguji na Petra ZZZ:
Protože se nějakou dobu načítá a inicializuje, během toho času může prohlížeč i zatuhnout … a pak je z toho tak paf, že zapomene, kam vlastně chtěl najet.
Petr ZZZ
Profil
Chamurappi, díky. Jestli to dobře chápu, tak až ten načtený applet je tedy v konfliktu se záložkou? (Kdyby to nefungování bylo způsobené načítáním appletu, tak by to muselo nejdřív nefungovat a potom fungovat – ale tmtm píše, že mu záložky nejdřív zafungují a potom fungovat přestanou.)
Chamurappi
Profil
Reaguji na Petra ZZZ:
Nemám s applety moc zkušeností, jen vím, že umí na chvíli seknout prohlížeč. Vysvětluji si to tedy tak, že samo načítání neškodí, ale inicializace appletu může, takže pokud je applet v keši, začne se inicializovat dřív, než když v keši není, a doba téhle brzké inicializace se překrývá s časem, kdy by Firefox rád najel na správné místo. Pozdější inicializace už tedy nevadí.

Možná to závisí i na dalších faktorech, těžko říct. Ale vliv struktury HTML kódu jde vyloučit, parsery v prohlížečích se už velmi dlouho chovají deterministicky, na stejný vstup dávají vždy stejný výstup.
Petr ZZZ
Profil
Chamurappi, děkuji za vysvětlení. Z toho by vlastně šlo odvodit další možné (i když ne moc hezké) řešení...

tmtm, nechceš na zkoušku zakázat kešování té stránky a napsat sem, zda to pomohlo?
tmtm
Profil *
Petr ZZZ:
tmtm, nechceš na zkoušku zakázat kešování té stránky a napsat sem, zda to pomohlo?

Mohl bych to zkusit, ale nevím jak. Při prvním pohledu na kešovací návod se to zdá být poměrně obtížné. Nevím, jestli to má nějakou souvislost, ale na appletech krom kostky 3x3x3 (možná i u ní) si snad můžu nastavovat kešování appletu (můžu plácat úplné nesmysly, bo jsem nastavování parametrů appletu nikdy moc nepoužíval) – viz např. stránka o kostce 2x2x2, kde je v rámci appletu <param name="classloader_cache" value="true"/>…

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: