Avatar billede xicrow Nybegynder
22. februar 2007 - 16:03 Der er 23 kommentarer og
1 løsning

Aktivere et javascript på en ASP side

Hej Eksperter.

Har et lille problem med en dropdown menu jeg er ved at lave.
Hele min side er lavet i ASP, men nu står jeg lige og mangler en dropdown menu som linker videre og har derfor fundet frem til følgende _meget simple_ dropdown menu:

<script type="text/javascript">
function showmenu(elmnt)
{document.all(elmnt).style.visibility="visible"}

function hidemenu(elmnt)
{document.all(elmnt).style.visibility="hidden"}
</script>

<table width="" border="1" cellspacing="0" cellpadding="0">
<tr>
    <td onMouseOver="showmenu('tutorials')" onMouseOut="hidemenu('tutorials')" width="100">
    Menu

    <table width="" border="1" cellspacing="0" cellpadding="0" id="tutorials" style="position:absolute; visibility:hidden;">
    <tr>
        <td class="menu">Link 1</td>
    </tr>
    <tr>
        <td class="menu">Link 2</td>
    </tr>
    <tr>
        <td class="menu">Link 3</td>
    </tr>
    <tr>
        <td class="menu">Link 4</td>
    </tr>
    <tr>
        <td class="menu">Link 5</td>
    </tr>
    </table>

    </td>
</tr>
</table>

Den virker sådan set ganske udemærket, på en ganske almindelig HTML side, men så snart de første linier på siden ser således ud:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%Option Explicit%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Så virker dropdown menuen ikke længere...

Er der nogen der kan hjælpe mig til en løsning???

Mvh. Xicrow
Avatar billede kalp Novice
22. februar 2007 - 16:05 #1
prøv at ændre

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


til


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:07 #2
Desværre ingen forskel...

Har en slem mistanke om at det er følgende linie den går gal

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

Men er der en måde man kan ændre siden "language" til JavaScript midlertidigt...
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:10 #3
Eller evt. kalde JavaScript funktionen på en mere præcis måde:

<td onMouseOver="java script:showmenu('tutorials');"
onMouseOut="java script:hidemenu('tutorials');" width="100">

Istedet for:

<td onMouseOver="showmenu('tutorials')"
onMouseOut="hidemenu('tutorials')" width="100">

???
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:14 #4
Har fundet ud af at det ER denne linie det går galt i:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Men kommentaren "22/02-2007 16:05:39" hjælper dog ikke!

Nogen der kan sige mig hvad den linie gør, og måske en evt. løsning?
Avatar billede kalp Novice
22. februar 2007 - 16:16 #5
valider lige din html med
http://validator.w3.org/
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:18 #6
Hvilken del af det...? Langt det meste af siden er som sagt ASP...
Avatar billede kalp Novice
22. februar 2007 - 16:20 #7
nej du tager fejl... det er ASP server side, men hos clienten (altså når du ser siderne "in action") så er det hele html.

derfor.. valider din sider på det link du lige har fået.
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:23 #8
Okay... sry...

Resultat af validering:

Sorry! This document can not be checked.

Sorry, I am unable to validate this document because its content type is application/x-asp, which is not currently supported by this service.

The Content-Type field is sent by your web server (or web browser if you use the file upload interface) and depends on its configuration. Commonly, web servers will have a mapping of filename extensions (such as ".html") to MIME Content-Type values (such as text/html).
Avatar billede kalp Novice
22. februar 2007 - 16:24 #9
smid lige det her på igen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

og så prøv.. men ellers har du et tag et sted på din side som hedder <Content-Type xxxx >

prøv at finde den.. den skal rettes. f.eks til

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:30 #10
Okay, toppen af min side ned til </head> ser således ud:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%Option Explicit%>
<!--
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Byportal - <%Response.Write Request.QueryString("side")%></title>
<link rel="stylesheet" type="text/css" href="design/style.css" />
<!--#Include File="inc/§DBconn.asp"-->
<!--#include file="inc/funktioner/checkMAIL.asp"-->
</head>

Men W3C tjekken siger det samme som før!
Avatar billede kalp Novice
22. februar 2007 - 16:40 #11
tror ikke det er nogen af de linjer der fejler..

får du ikke et linje nummer hos w3 valideringen?
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:47 #12
nej... kun den ovenstående besked!
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:47 #13
Men hvad skal jeg med W3's check???
Avatar billede kalp Novice
22. februar 2007 - 16:49 #14
sørge for at din side lever op til de krav dit DOC type stiller.. for det er tydeligvis noget den ikke gør:)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

er et doc type.. og fjerner du det helt skal det ikke leve op til noget hvilket må være derfor det virker:)
Avatar billede xicrow Nybegynder
22. februar 2007 - 16:52 #15
ja det er sku nemt uden nogen krav... *hehe*
Avatar billede kalp Novice
22. februar 2007 - 16:54 #16
Men hvis din side skal se ordenlig ud i diverse browsere og du ønsker en bedre placering på google så skal du få den til at blive valid...
Ikke alle browsere kan læse ligegyldig html:)
og google tager sider som ikke er valideret mindre seriøst.

Er alt dette ligegyldigt så fjerner du jo bare den linje:)
Avatar billede xicrow Nybegynder
22. februar 2007 - 17:01 #17
Ligegyldigt er det dog ikke...

Men er jo et problem hvis jeg ikke kan få dropdown menuen til at virke!
Avatar billede olebole Juniormester
23. februar 2007 - 10:57 #18
<ole>

"og google tager sider som ikke er valideret mindre seriøst." -> Det er der ikke belæg for at påstå - men der er til gengæld rigeligt med gode grunde til at bruge en DTD ... f.eks. at der ikke er tale om et HTML-dokument, hvis det ikke indeholder en DTD.
Desuden disabler IE store og vigtige dele af CSS, hvis man bruger en forkert DTD - eller hvis man f.eks. skriver en kommentar før DTD'en - som i eksemplet (22/02-2007 16:30:31).
Derudover er det en decideret fejl at bruge JavaScript pseudo-protokollen i en event-handler. Altså _aldrig_ 'java script:' i onmouseover, onclick el.lign.

Hvis du ønsker en løsning, er du nødt til at lægge et link, så vi kan finde dine fejl ... det har i hvertfald intet at gøre med, det er en ASP-side  ;o)

/mvh
</bole>
Avatar billede kalp Novice
23. februar 2007 - 10:59 #19
Jeg skulle mene meget kraftigt, at have læst om google's robot rangere fejlfrie sider bedre end en dem som ikke kan valideres korrekt.

Men vi er helt enige om, at det intet har med ASP at gøre hvilket er derfor jeg bad ham validere sine sider:)
Avatar billede crazysnap Seniormester
23. februar 2007 - 11:00 #20
Hej xicrow,

Jeg har gjort dit script browser-uafhængigt og dit html-script validt til XHTML, så prøv at paste forskellene ind på din ASP side fra mine rettelser nedenfor og se om det ikke har en positiv virkning. :)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/javascript">
            function showmenu(elmnt)
            {document.getElementById(elmnt).style.visibility="visible"}

            function hidemenu(elmnt)
            {document.getElementById(elmnt).style.visibility="hidden"}
        </script>

    </head>
    <body>
        <table width="" border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td onmouseover="showmenu('tutorials')" onmouseout="hidemenu('tutorials')" style="width: 100px">
                    Menu
                    <table width="" border="1" cellspacing="0" cellpadding="0" id="tutorials" style="position:absolute; visibility:hidden;">
                        <tr>
                            <td class="menu">Link 1</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 2</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 3</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 4</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 5</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>


De vigtigste ændringer er at events'ne på <td>-tag'en er i lowercase (et krav) og at 'document.all' i javascriptet er ændret til 'document.getElementById'. :)


Mvh.

- Snap
Avatar billede roenving Novice
23. februar 2007 - 11:23 #21
-- men hvis du skal bruge xhtml skal du jo også escape javascriptet som cdata ?-)
Avatar billede xicrow Nybegynder
23. februar 2007 - 22:27 #22
--> CrazySnap

Jeg har brugt din kode, og det er endelig lykkes at få det til at virke _med_ DOCTYPE, men kan dog stadig ikke validere siden på W3C:

Result: Failed validation 
File: D:\-\Hjemmesider\Websites\For-real\DDmenu.asp
Encoding: 
Doctype: 

Sorry! This document can not be checked.
Sorry, I am unable to validate this document because its content type is application/x-asp, which is not currently supported by this service.

The Content-Type field is sent by your web server (or web browser if you use the file upload interface) and depends on its configuration. Commonly, web servers will have a mapping of filename extensions (such as ".html") to MIME Content-Type values (such as text/html).

That you received this message can mean that your server



Koden for den testede fil:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/javascript">
            function showmenu(elmnt)
            {document.getElementById(elmnt).style.visibility="visible"}

            function hidemenu(elmnt)
            {document.getElementById(elmnt).style.visibility="hidden"}
        </script>

    </head>
    <body>
        <table width="" border="1" cellspacing="0" cellpadding="0">
            <tr>
                <td onmouseover="showmenu('tutorials')" onmouseout="hidemenu('tutorials')" style="width: 100px">
                    Menu
                    <table width="" border="1" cellspacing="0" cellpadding="0" id="tutorials" style="position:absolute; visibility:hidden;">
                        <tr>
                            <td class="menu">Link 1</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 2</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 3</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 4</td>
                        </tr>
                        <tr>
                            <td class="menu">Link 5</td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>


Har det noget at gøre med at filen hedder *.asp???

Tak for hjælpen forresten, smider du et svar...?
Avatar billede crazysnap Seniormester
23. februar 2007 - 22:49 #23
Hej xicrow,

Jeg skal ikke kunne sige hvad den fejl betyder, men det lyder som om at det sted du prøver at validere asp ikke understøtter validering af asp sider. Jeg har aldrig selv prøvet at validere asp sider (kun aspx-sider i MS Visual Studio) så jeg kan desværre ikke give dig et entydigt svar på lige netop dette.

Jeg er tilgengæld glad for at høre at du fik funktionaliteten på plads udfra mine få rettelser! :)


Mvh.

- Snap
Avatar billede roenving Novice
24. februar 2007 - 14:42 #24
-- hvis du skal validere på w3c, skal du præsentere servicen for den html-kode, der kommer ud af asp-scriptet, og ikke vbscript-koden med indlejret html !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester