/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Spry og <noscript>
Fra : Thomas VJ


Dato : 20-06-08 16:30

Hej,

Jeg håber dette er den rigtige gruppe ...

Jeg forsøger at bygge en side med Spry Tabbed Panels (Dreamweaver) og har et
problem med <noscript>.
Jeg ved stort set nada om javascript men har en ide om at man kan vise
browsere med Javascript aktiveret én version af siden og browsere uden
Javascript en anden version af side. Er det ikke nogenlunde korrekt?

Jeg kan ved at sætte et <noscript></noscript> tag ind få siden til at ikke
at vise <noscript> delen når javascript er aktiveret, men slår jeg
javascript fra, så vises både indholdet af <script> og <noscript>. <script>
delen vises dog ikke som ønsket.

Koden ser således ud:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Spry test</title>
<link href="includes/modules/themes/default_theme/stylesheet.css"
rel="stylesheet" type="text/css" />
</head>

<body>
<script src="SpryAssets/SpryTabbedPanels.js"
type="text/javascript"></script>
<noscript>Denne side vises bedst med javascript aktiveret</noscript>
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab">Menu 1</li>
<li class="TabbedPanelsTab">Menu 2</li>
<li class="TabbedPanelsTab">Menu 3</li>
<li class="TabbedPanelsTab">Menu 4</li>
<li class="TabbedPanelsTab">Menu 5</li>
<li class="TabbedPanelsTab">Menu 6</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">Menu 1 tekst</div>
<div class="TabbedPanelsContent">Menu 2 tekst</div>
<div class="TabbedPanelsContent">Menu 3 tekst</div>
<div class="TabbedPanelsContent">Menu 4 tekst</div>
<div class="TabbedPanelsContent">Menu 5 tekst</div>
<div class="TabbedPanelsContent">Menu 6 tekst</div>
</div>
</div>


<script type="text/javascript">

<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
//-->
</script>

</body>
</html>


Kan det i denne situation overhovedet lade sig gøre at skjule <script> delen
for browsere der ikke har javascript aktiveret?

Med venlig hilsen,
ThomasVJ



 
 
David Konrad (21-06-2008)
Kommentar
Fra : David Konrad


Dato : 21-06-08 03:10

Thomas VJ wrote:
> Hej,
>
> Jeg håber dette er den rigtige gruppe ...

(...)

<script></script> "skjules" helt korrekt hvis man tester din kode af, dvs
noscript-tag'et træder i funktion. Jeg har prøvet din kode af i firefox,
safari og IE - og prøvet at slå javascript fra. Når javascript er slået fra
vises <noscript>, når det er slået til vises det ikke.

Der hvor du muligvis går lidt vild i det, er, at den HTML du har lavet jo
vil blive vist uanset hvad (hvis jeg forstår dig korrekt, altså det du
undrer dig over som vises). Det er kun alt det mellem <script></script> der
evt ikke vil blive udført, hvis javascript er slået fra, du ikke burde se.
Men resten af HTML'en vil blive eksekveret som normalt.

Løsningen på dit problem kan være flere ting, f.eks :

* en function der fylder <div id=tabbedPanels> op med "<ul
class="TabbedPanelsTabGroup"><li class="TabbedPanelsTab">Menu 1</li>..." osv
dynamisk

* en function der sætter <div id=tabbedPanels> visible til at være hidden, i
noscript-delen

(...)
> Kan det i denne situation overhovedet lade sig gøre at skjule
> <script> delen for browsere der ikke har javascript aktiveret?

Den skjules jo aldrig - koden bliver bare ikke eksekveret. Det sikrer at
siden ikke genererer en regulær fejl, at man har <noscript>. Men i
virkeligheden er det en rudimentær overflødighed.

Når det er sagt, så vil jeg sige, at det virker lidt som tidsspilde at
bekymre sig om eksistensen af javascript anno 2008, hvor alle taler om web
2.0 osv. Javascript er ganske enkelt en forudsætning for at kunne surfe på
nettet i dag. Det virker helt usandsynligt at du skulle have en større
målgruppe hvor du forventer at javascript er slået fra.

Det svarer lidt til det arkaiske "<noframes>" - ikke blot laver man i dag
ikke længere sider i frames, men alle browsere understøtter det, i
modsætning til dengang da kun netscape understøttede frames.

Så du bekymrer dig muligvis for meget om alt for lidt.



David Konrad (21-06-2008)
Kommentar
Fra : David Konrad


Dato : 21-06-08 03:14

....

> * en function der sætter <div id=tabbedPanels> visible til at være
> hidden, i noscript-delen

Jeg må rette mig selv - omvendt, naturligvis. HVIS javascript er slået til
sætter man <div id=tabbedPanels style='display:visible;'> hvis javascript er
slået til.

Man kan naturligvis ikke have en funktion der slår det fra, hvis javascript
ikke er til rådighed sry..



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste