erikjakobsen:> det ER skrevet ordentligt. Jeg kan lige forklare problemet så kan du forstå hvorfor.
Det er til en chat hvor ALT bliver opdateret fra en skjult frame til <div>\'s via JavaScript. Da den skjulte fram bliver loaded først (jeg kunne se\'følig loade den sidst . har jeg da ikke tænkt på *DOH*) så checker den om de andre frames er loaded, hvis ikke sætter den et TimeOut på 1 sec og prøver igen indtil den funker. Men af en eller anden underlig grun for jeg sometider en \"document.message.user is null or not an object\" og det bvil jeg undgå ..
Man kan sætte en procedure ind, nemlig. Men vi kunne jo også løse dit problem med at teste om en ramme er hentet.
I ramme1, der tester om ramme2 er hentet spørger du på:
if (top.ramme2.sjovvariabel!=\"\") { .. er hentet ..} else { .. er ikke ..}
Og i ramme2 skriver du:
<body ... onload=\"sjovvariabel=7913;\">
Problemet med at spørge på document.message.user, er at message-objektet skal være der for at kunne spørge på en delvariabel, mens \"toplevel\" variabler altid kan spørges på.
Du kan se den her function .. det er en af dem der er bøvl med.. Som du kan se bruger jeg .readyState == \"complete\" til at teste om framen er loadet. Det fandt jeg ud af man kunne så derfor brugte jeg den. Men jeg kan godt se at hvis framen SLET ikke er hentet så kan jeg heller ikke teste på .readyState .. eller hva d ?
du skal lave en function, der udfører hvad du vil når der opstår en fejl. Denne funktion vil blive kaldt med sidens URL, linienummer hvor fejlen opstod og så selve besked med beskrivelse af fejlen.
her er et eksempel: <SCRIPT LANGUAGE=\"JavaScript\"> window.onerror = function(msg, url, linenr) { var strErr = \"Fejlen er sendt til min egen error-handler.\\n\\nSidens URL er: \"+url+\"\\nFejlen opstod i linie \"+linenr+\"\\nBeskrivelse af fejlen:\\n\"+msg; alert(strErr); return true; } </SCRIPT>
erikjakobsen:> .readyState = \"loading\" eller \"complete\" alt efter hvad \"state\" rammen er i. stringbuffer:> jeg ved skam godt hvordan jeg laver en function til af fange fejlen nu med .onerror ..
koden vil så svare til at du laver en label med denne funktions kode og fortæller at den skal lave en goto til den kode.
Du kan naturligvis lave flere forskellige funktioner, der kan håndtere fejl på forskellige måder. function errHandler1(msg, url, linenr) { ... } function errHandler2(msg, url, linenr) { ... } function errHandler3(msg, url, linenr) { ... }
så når du kalder en function, der kan give en fejl, og du f.eks. vil have koden i errHandler1 til at tage sig af fejlen, siger du bare:
function funCtionDerKanGiveFejl() { window.onerror = errHandler1; //kode, der kan give fejl her window.onerror = null; //eller den error handler, du bruger som default }
ehm... såvidt jeg kan huske var spørgsmålet noget med hvordan man kan kan gøre så der IKKE bliver vist javascript fejl. Svaret er så at du skal lave en error handler, der laver intet.
Ja, det er rigtigt... men jeg anede ikke helt om man kunne lave så den udførte en proc. istedet, men det så jeg jo man kunne...
Men jeg har jo sådanset fået mit svar, så tak for det. Jeg synes lige at du (stringbuffer) også skulle have lidt point da du hjalp lidt også .. jeg får sikkert brug for det på et eller andet tidspunkt.
Det er jo rigtigt. Hvis du ikke kan teste på top.ramme2.sjovtnavn!=\"\" kan du prøve på typeof(top.ramme2.sjovtnavn)!=\"undefined\" . Det sidste er måske nok trods alt mest sikkert.
Snakker vi ikke ASP ??? Så ligger det jo på serveren, og så er det bare Windows Script Host man skal opdaterer... På klienten aner jeg det ikke, men der tester man jo sjældent på objekter ???
Vi snakker ikke JavaScript i ASP, men på klienten ;-)
Synes godt om
Ny brugerNybegynder
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.