Autor | Zpráva | ||
---|---|---|---|
147477 Profil |
#1 · Zasláno: 16. 2. 2012, 23:54:02
Zdravíčko,
věnuji se tvorbě soukromého webu s účelově minimálním počtem návštěvníků, takže v podstatě neznám žádných hranic. Vzhledem k tomu, že stránky jsou postaveny na JavaScriptu, je pro tu hrstku čtenářů nutnost mít jej zapnutý. Každopádně mi jde o to, aby na main page proběhl test na JavaScript a buďto se zobrazil klikatelný obrázek pro vstup, nebo statický spolu s textem, že JS je vyžadován. Samozřejmě znám párový tag <noscript>, ale netuším, jak docílit toho, aby se část stránky (klikatelný obrázek dělaný na bázi onmouseover a onmouseout) při vypnutém JS vůbec nezobrazila, resp. se zobrazil náhradní. Mohl by mi tu někdo poradit? Děkuji. |
||
Chamurappi Profil |
#2 · Zasláno: 17. 2. 2012, 00:03:42
Reaguji na 147477:
Nejtriviálnější postup je vyrobit ten klikatelný obrázek také skriptem. Nebo ho zviditelnit z jinak výchozího neviditelného stavu. |
||
147477 Profil |
#3 · Zasláno: 17. 2. 2012, 00:18:39
Vyrobit klikatelný obrázek také skriptem?
Problém je, že funkce onmouseover (stejně tak onmouseout) nevyžaduje tag <script> a lepší prohlížeče to bůhvíjak rozpoznají a správně vyhodnotí i s vypnutým JavaScriptem. Kdyby se to dalo obalit tím tagem, předpokládám, že by to klient za dané okolnosti automaticky ignoroval. |
||
Louka Profil |
#4 · Zasláno: 17. 2. 2012, 00:22:39
Chamurappi to nejspíše myslel zhruba takto:
<script> document.write("<img src='...' onmouseover='...'>"); </script> <noscript>Je vyžadován zapnutý JS.</noscript> |
||
147477 Profil |
#5 · Zasláno: 17. 2. 2012, 00:33:00
To vypadá zajímavě. Takže původní hodnoty se dají obalit do tagu <script>, když se před ně napíše příkaz document.write?
Ještě dnes to otestuju a dám vědět. |
||
peta Profil |
<style>.nojs {display: none;}</style> <div id=ahoj class="nojs">Skryty div</div> <script>document.getElementById('ahoj').className = ''; /* smaz class */</script> |
||
147477 Profil |
#7 · Zasláno: 17. 2. 2012, 15:53:30
Tak zatím mi Chrome ani Firefox script nepoznají, žádný obrázek se nezobrazí, ať je JS zapnutý nebo vypnutý. Kde mám chybu?
<script> document.write("<p style=\"text-align: center;\"> <a href=\"http://web.cz/folder/index.html\" onMouseOut=\"self.document['obr1'].src='enter_1.png';\" onMouseOver=\"self.document['obr1'].src='enter_2.png';\">") document.write("<img name=\"obr1\" src=\"enter_1.png\" border=\"0\">") document.write("</a>") </script> |
||
Someone Profil |
#8 · Zasláno: 17. 2. 2012, 15:56:10
nikde nemáš zakončeno středníky:
document.write("");
|
||
147477 Profil |
Ještě u toho mám:
<script type="text/javascript" language="JavaScript"> <!-- var obr_1 = new Image(); obr_1.src = 'enter_2.png'; // --> </script> Ty středníky stačí jen za závorkami ") ? |
||
_es Profil |
#10 · Zasláno: 17. 2. 2012, 16:02:17
147477:
V textovom reťazci v JS nemôže byť zalomenie riadka. Ak ho tam treba, tak sa musí vložiť ako dvojica znakov \n .
|
||
147477 Profil |
#11 · Zasláno: 17. 2. 2012, 20:04:22 · Upravil/a: 147477
Tak je to výborný, všechno funguje jak má. Akorát mne mrzí, že se zapnutým JS se při přesměrování stránky skrz window.location.replace na zlomek sekundy zobrazí text, který je v tagu <noscript>, a tudíž by neměl být vůbec vidět. Je toto možné nějak zafixovat?
Dočetl jsem se, že to jde vyřešit přes tag <div> a příkaz display: none, ale stejně mi to nefunguje - text se stále na moment zobrazí, což je nežádoucí. <div> <script> document.write("<p style=\"display: none\">"); </script> <p style="text-align: center;"> <b> Je vyžadován zapnutý JS. </b> </div> |
||
147477 Profil |
#12 · Zasláno: 17. 2. 2012, 21:25:55
peta:
Jsem to ale vůl. Nějak jsem tento užitečný příspěvek přehlídl, díky! |
||
147477 Profil |
Tak jsem byl nucen se vrátit k sestavení [#11], protože ten kód od peta bohužel vůbec nic nevyřešil (skrytý text byl se zapnutým JS stále vidět), pouze došlo k chybnému vycentrování stránky (převážná část webu je na střed, tohle stánku zarovnalo doleva, což nevypadá pěkně).
Používám Chrome a testoval jsem to i ve Firefoxu. Jak bych měl kód modifikovat, aby fungoval? Jak prosté... Z (nefunkčního) pseudokódu <div> <script> document.write("<p style=\"display: none\">"); </script> <p style="text-align: center;"> <b> Je vyžadován zapnutý JS. </b> </div> stačilo mírnou úpravou udělat (plně validní) kód: <div> <p style="text-align: center;"> <script> document.write("<p style=\"display: none\">"); </script> <b> Je vyžadován zapnutý JS. </b> </div> |
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#14 · Zasláno: 21. 2. 2012, 15:18:26
147477:
"skrytý text byl se zapnutým JS stále vidět" Samozrejme, tak to melo fungovat, podle puvodniho dotazu. Pri vypnutem skryte, pri zapnutem objevene. Tak jsi to pozadoval. "při vypnutém JS vůbec nezobrazila" |
||
Časová prodleva: 12 let
|
0