Avatar billede foxmulder Nybegynder
09. august 2007 - 17:36 Der er 13 kommentarer

Problem med menu i Firefox

Jeg sidder og forsøger at opdatere et site som jeg ikke selv har programmeret. Siden er skrevet i ASP.

Problemet opstår kun i Firefox og ikke i IE.

Jeg har en rolldown menu på min side som skal opdate url'en så siden senere ved hvilken databasetabel den skal læse data fra.

I IE opdateres url'en uden problemer i browseren når jeg ændrer værdien i roll-down menuen. .... Der sker bare ikke en fis når jeg gør det samme i  Firefox.

I Firefox's fejlkonsol siger den:
"document.getElementById("selectResultFile") has no properties"

Kan ikke helt gennemskue hvor det helt præcis går galt.

Har du en copy/paste-klar løsning, går pointene lige i lommen på dig :)



******KODEN*********

Her er JS funktionen

function getDB(url)
{
    var x=document.getElementById("selectResultFile").value;
    var selIndexValue = x.options[x.selectedIndex].value;
   
    var urlPrefix = "http://www.*******.dk" //
   
    var currentUrl = urlPrefix + "<% Response.Write url & "&" %>db=" + selIndexValue;
   
    //window.location.href = currentUrl;   
    window.content.location.href= currentUrl;
}

// Længere nede i body har jeg denne kode .... der er ingen form tag omkring den

<select onChange="getDB(this)" style="font-size:7pt;background:#ffffff;" name="selectResultFile" size="1">

//Herefter følger koden som henter indholdet til menuen

<%
                                    'Retrieving collection of resultdatabases
                                Set rs = Server.CreateObject("ADODB.Recordset")
                                sql = "Select * from uploadDbInfo where active = 1 Order By orderInt Asc;"
                                rs.open sql,conAdmin
                                    While not rs.eof
                                    If request.querystring("db") = "" then 'If no DB has been specified
                                    If rs("defaultFile") = 1 then 'Then select the default DB
                                            out "<option selected value=""" & rs("id") & """>-&gt; " & rs("title") & "</option>"
                                        else
                                            out "<option value=""" & rs("id") & """>-&gt; " & rs("title") & "</option>"
                                        end if
                                    else
                                        if Cint(request.querystring("db")) = rs("id") then 'If a DB has been selected
                                            out "<option selected value=""" & rs("id") & """>-&gt; " & rs("title") & "</option>"
                                        else
                                            out "<option value=""" & rs("id") & """>-&gt; " & rs("title") & "</option>"
                                        end if
                                    end if


                                rs.movenext
                                Wend
                                rs.close : set rs = nothing
                               
                                %>
Avatar billede erikjacobsen Ekspert
09. august 2007 - 17:50 #1
getElementById virker kun hvis elementet har en id - det er da logisk, ik'?
Avatar billede foxmulder Nybegynder
09. august 2007 - 17:56 #2
Jo .. wiseguy... vis mig hvordan!
Avatar billede foxmulder Nybegynder
09. august 2007 - 17:57 #3
Hvis det var småflabede svar jeg var ude efter kunne jeg såmænd godt selv have fundet på  nogle. >:(
Avatar billede erikjacobsen Ekspert
09. august 2007 - 17:58 #4
Nu må du ikke grine, men det er altså bare at ændre

<select onChange="getDB(this)" style="font-size:7pt;background:#ffffff;" name="selectResultFile" size="1">

til

<select onChange="getDB(this)" style="font-size:7pt;background:#ffffff;" name="selectResultFile" id="selectResultFile" size="1">
Avatar billede foxmulder Nybegynder
09. august 2007 - 18:17 #5
Sweeeet!

Jeg er nød til at vente til i morgen med at teste det af ....

Du hører nærmere
Avatar billede foxmulder Nybegynder
10. august 2007 - 10:21 #6
Yahaa ... det virker sgu!

Hvorfor er det lige at IE ikke behøver id-tag'et ?

Send et svar så jeg kan overføre pointene
Avatar billede foxmulder Nybegynder
10. august 2007 - 10:22 #7
Hmm... Bummer!

Nu virker det så ikke i IE !! Hilfe
Avatar billede foxmulder Nybegynder
10. august 2007 - 10:27 #8
Har fundet bug'en

window.location.href = currentUrl;  <--------- Virker i IE og Firefox
window.content.location.href= currentUrl; <---- Virker ikke i IE men virker i Firefox
Avatar billede olebole Juniormester
10. august 2007 - 21:44 #9
Den første bør du ikke bruge. Det er den anden, der er korrekt - og den virker fint i alle på markedet værende browsere ... og sådan har det været i mange år  :)
Test et enkelt dokument i IE:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>TITLE</title>
<style type="text/css">
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}
</style>
<script type="text/JavaScript">
function getDB(url)
{
    var x=document.getElementById("selectResultFile");
    var selIndexValue = x.options[x.selectedIndex].value;
   
    var urlPrefix = "http://www.google.dk";
   
    var currentUrl = urlPrefix + "/search?hl=da&q=" + selIndexValue;
   
    //window.location.href = currentUrl;   
    window.content.location.href= currentUrl;
}

var content = null;
window.onload = function() {
    content = frames.frContent;
}
</script>
</head>
<body>

<select onChange="getDB(this)" style="font-size:7pt;background:#ffffff;" id="selectResultFile" size="1">
    <option value="-1">Vælg ...</option>
    <option value="et+ord">Et ord</option>
    <option value="et+andet+ord">Et andet ord</option>
    <option value="og+et+tredje">Og et tredje</option>
    <option value="noget+helt+fjerde">Noget helt fjerde</option>
</select>

<iframe name="frContent" src="about:blank" style="width:800px;height:600px;display:block"></iframe>

</body>
</html>

- fejlen må ligge et andet sted  ;o)
Avatar billede foxmulder Nybegynder
12. august 2007 - 18:21 #10
Det er muligt at der er andre fejl ... men det virker i hvert fald nu.

Den nederste kan jeg ikke få til at virke i Firefox
Avatar billede olebole Juniormester
12. august 2007 - 23:31 #11
Ville det mon ikke være smart at rette dine fejl i stedet? Min kode virker fint i Firefox ... location.href virker med statsgaranti  =)
Avatar billede foxmulder Nybegynder
13. august 2007 - 09:03 #12
jo - men så må du jo ligesom udpege de fejl du mener. Når jeg nu ikke oplever fejl ved at anvende location.href kan jeg jo ligesom ikke se at der skulle være andre fejl.
Avatar billede olebole Juniormester
13. august 2007 - 16:31 #13
Det kan jeg jo ikke vide, når jeg ikke kan se hele din kode. Jeg kunne dog forestille mig, 'content' slet ikke er defineret ... men så kan jeg ikke forstå, du ikke har omtalt den fejl, Firefox må have givet dig.

Har du noget i stil med dette?

var content = null;
window.onload = function() {
    content = frames.frContent;
}
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