07. april 2005 - 08:25
Der er
7 kommentarer og 1 løsning
Fejl hvis objekt ikke findes
Jeg har denne kode; ie = (document.all&&!window.opera)?1:0; if(ie) { window.attachEvent("onload",noget); } else { window.addEventListener('load',noget,false); } function noget(){ try{ e = document.rediger.paymethod; document.rediger.delivery.value = 1; } catch(e){ // alert("feltet "+e.name+" er her ikke"); } } function setBetaling() { document.rediger.pay(shoppinglist_MINUS14).value = 2; document.rediger.pay(shoppinglist_MINUS15).value = 1; } function tjekcookie() { if (document.cookie.indexOf("popup=allerede") == -1) { window.open('/page382.aspx', 'Nyhedsbrev', 'menubar=no,scrollbars=no, width=400,height=350'); document.cookie = "popup=allerede"; } } // onMouseOver="toolTip('tool tip tekst her')"; // onMouseOut="toolTip()"; // -eller- // onMouseOver="toolTip('flere muligheder', '#FFFF00', 'orange')"; // onMouseOut="toolTip()"; var ns4 = document.layers; var ns6 = document.getElementById && !document.all; var ie4 = document.all; offsetX = 0; offsetY = 20; var toolTipSTYLE=""; function initToolTips() { try{ f = document.toolTipLayer; if(ns4||ns6||ie4) { if(ns4) toolTipSTYLE = document.toolTipLayer; else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style; else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style; if(ns4) document.captureEvents(Event.MOUSEMOVE); else { toolTipSTYLE.visibility = "visible"; toolTipSTYLE.display = "none"; } document.onmousemove = moveToMouseLoc; } } function toolTip(msg, fg, bg) { if(toolTip.arguments.length < 1) // hide { if(ns4) toolTipSTYLE.visibility = "hidden"; else toolTipSTYLE.display = "none"; } else // show { if(!fg) fg = "#777777"; if(!bg) bg = "#FFFFFF"; var content = '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + fg + '"><td>' + '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + bg + '"><td align="center"><font face="sans-serif" color="' + fg + '" size="-2"> \;' + msg + ' \;</font></td></table></td></table>'; if(ns4) { toolTipSTYLE.document.write(content); toolTipSTYLE.document.close(); toolTipSTYLE.visibility = "visible"; } if(ns6) { document.getElementById("toolTipLayer").innerHTML = content; toolTipSTYLE.display='block' } if(ie4) { document.all("toolTipLayer").innerHTML=content; toolTipSTYLE.display='block' } } } function moveToMouseLoc(e) { if(ns4||ns6) { x = e.pageX; y = e.pageY; } else { x = event.x + document.body.scrollLeft; y = event.y + document.body.scrollTop; } toolTipSTYLE.left = x + offsetX; toolTipSTYLE.top = y + offsetY; return true; } } } catch(f){ // alert("feltet "+e.name+" er her ikke"); } Men på de sider hvor det ikke skal bruges får jeg en javascriptfejl der siger, at document.all.toolTipLayer.style er null eller ikke er et objekt. Kan jeg undgå det?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
07. april 2005 - 09:31
#1
prøv med dette inden du sætter din style: if(document.all.toolTipLayer) Værdien er "undefined" hvis ikke den eksisterer.
07. april 2005 - 09:52
#2
Nej, det ændrede ikke noget.
07. april 2005 - 09:57
#3
hvorfor henter du den på to forskellige måder? else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style; else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style; kan se du allerede har det i en try{} men mangler der ikke en catch(){} i røven af den? Ellers er løsningen af rive det ind i en try, så fejler den på det (og ryger i catch), hvor du selv kan behandle fejlen.
07. april 2005 - 10:07
#4
Og den catch jeg har i bunden duer ikke eller hvad? Jeg har forsøgt med en try ... catch, men synes ikke jeg kan få det til at virke.
07. april 2005 - 10:21
#5
din try er bundet til scope, som er inde i din funktion, du skal skrive sådan her: function initToolTips() { try{ f = document.toolTipLayer; if(ns4||ns6||ie4) { if(ns4) toolTipSTYLE = document.toolTipLayer; else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style; else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style; if(ns4) document.captureEvents(Event.MOUSEMOVE); else { toolTipSTYLE.visibility = "visible"; toolTipSTYLE.display = "none"; } document.onmousemove = moveToMouseLoc; } catch(exp){} } ligesom du har gjort her: function noget(){ try{ e = document.rediger.paymethod; document.rediger.delivery.value = 1; } catch(e){ // alert("feltet "+e.name+" er her ikke"); } der er en løs catch i din sidste funktion uden try{}: catch(f){ // alert("feltet "+e.name+" er her ikke");
07. april 2005 - 10:37
#6
Hvis jeg gør sådan: ie = (document.all&&!window.opera)?1:0; if(ie) { window.attachEvent("onload",noget); } else { window.addEventListener('load',noget,false); } function noget(){ try{ e = document.rediger.paymethod; document.rediger.delivery.value = 1; } catch(e){ // alert("feltet "+e.name+" er her ikke"); } } function setBetaling() { document.rediger.pay(shoppinglist_MINUS14).value = 2; document.rediger.pay(shoppinglist_MINUS15).value = 1; } function tjekcookie() { if (document.cookie.indexOf("popup=allerede") == -1) { window.open('/page382.aspx', 'Nyhedsbrev', 'menubar=no,scrollbars=no, width=400,height=350'); document.cookie = "popup=allerede"; } } // onMouseOver="toolTip('tool tip tekst her')"; // onMouseOut="toolTip()"; // -eller- // onMouseOver="toolTip('flere muligheder', '#FFFF00', 'orange')"; // onMouseOut="toolTip()"; var ns4 = document.layers; var ns6 = document.getElementById && !document.all; var ie4 = document.all; offsetX = 0; offsetY = 20; var toolTipSTYLE=""; function initToolTips() { try{ f = document.toolTipLayer; if(ns4||ns6||ie4) { if(ns4) toolTipSTYLE = document.toolTipLayer; else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style; else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style; if(ns4) document.captureEvents(Event.MOUSEMOVE); else { toolTipSTYLE.visibility = "visible"; toolTipSTYLE.display = "none"; } document.onmousemove = moveToMouseLoc; } catch(f){} } function toolTip(msg, fg, bg) { if(toolTip.arguments.length < 1) // hide { if(ns4) toolTipSTYLE.visibility = "hidden"; else toolTipSTYLE.display = "none"; } else // show { if(!fg) fg = "#777777"; if(!bg) bg = "#FFFFFF"; var content = '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + fg + '"><td>' + '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + bg + '"><td align="center"><font face="sans-serif" color="' + fg + '" size="-2"> \;' + msg + ' \;</font></td></table></td></table>'; if(ns4) { toolTipSTYLE.document.write(content); toolTipSTYLE.document.close(); toolTipSTYLE.visibility = "visible"; } if(ns6) { document.getElementById("toolTipLayer").innerHTML = content; toolTipSTYLE.display='block' } if(ie4) { document.all("toolTipLayer").innerHTML=content; toolTipSTYLE.display='block' } } } function moveToMouseLoc(e) { if(ns4||ns6) { x = e.pageX; y = e.pageY; } else { x = event.x + document.body.scrollLeft; y = event.y + document.body.scrollTop; } toolTipSTYLE.left = x + offsetX; toolTipSTYLE.top = y + offsetY; return true; } Melder den, at "Et objekt var ventet" Linie 36 tegn 11
07. april 2005 - 10:42
#7
Der manglede en } nu er det løst. Tak for hjælpen.
07. april 2005 - 10:43
#8
you are welcome
Vi tilbyder markedets bedste kurser inden for webudvikling