[IE / Javascript] Hoe IE javascript debuggen?

Pagina: 1
Acties:
  • 328 views sinds 30-01-2008
  • Reageer

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Als ik een stukje javascript test in Firefox en het werkt niet (goed), kan ik via de Javascript Console kijken waar het fout gaat. IE zegt alleen maar
Line: 16
Char: 3
Error: Object doesn't support this property or method
Code: 0
Ik heb geen idee wat "line 16" is, want ik roep een hoop javascript bestandjes aan in het header. Bovendien wil ik er ook graag preciezer op gewezen worden waarom mijn scriptje niet werkt.

Via tools > internet options > advanced heb ik "disable script debugging" uitgevinkt, maar dit helpt niets. Ik had verwacht dat er nu een debug programma zou gaan draaien (wel eens bij een oudere windows PC gezien), maar dat gebeurt dus niet.

Wat moet ik doen om meer debug info uit IE te krijgen?

[ Voor 4% gewijzigd door Reveller op 19-03-2006 21:09 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


Verwijderd

en wat zegt FF ?

  • Victor
  • Registratie: November 2003
  • Niet online
Je kunt met de JavaScript console van Firefox heel goed debuggen. Mocht je persé IE willen gebruiken, dan zal je een externe applicatie moeten aanroepen. Visual Studio 2005 bijvoorbeeld kan zich aan Internet Explorer "binden" en daarmee een JavaScript debuggen.

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Oh ja ... FF geeft geen foutmelding trouwens ... scriptje werkt daar perfect. Ik weet ook niet zeker of het aan dat specifieke script ligt of dat IE zich stukbijt op een ander stukje code waardoor al het andere ook niet werkt ... vandaar dat ik meer debug info nodig heb :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Victor
  • Registratie: November 2003
  • Niet online
Reveller schreef op zondag 19 maart 2006 @ 22:31:
[...]

Oh ja ... FF geeft geen foutmelding trouwens ... scriptje werkt daar perfect. Ik weet ook niet zeker of het aan dat specifieke script ligt of dat IE zich stukbijt op een ander stukje code waardoor al het andere ook niet werkt ... vandaar dat ik meer debug info nodig heb :)
Misschien dat je ergens gebruik maakt van een object dat niet ondersteunt wordt door IE. Ben je soms met AJAX bezig, of een andere techniek waarbij IE andere implementaties heeft dan de rest van de wereld?

  • Fuzzillogic
  • Registratie: November 2001
  • Laatst online: 01-07-2025
King_Louie schreef op zondag 19 maart 2006 @ 22:35:
[...]

Misschien dat je ergens gebruik maakt van een object dat niet ondersteunt wordt door IE. Ben je soms met AJAX bezig, of een andere techniek waarbij IE andere implementaties heeft dan de rest van de wereld?
offtopic:
Psst, AJAX met xmlHTTPRequest is juist ontwikkeld door MS ;) Dat de implementatie door moderne browsers een stuk beter is (en dat er een W3C-compliant alternatief voor is) is een ander issue.


Als je MS Office hebt dan schijn je daarmee ook gebruik te kunnen maken van de debugger die in Office zit. En er is nog een gratis versie Visual Studio te downloaden.

Of je post een stukje code hier ;)

  • Victor
  • Registratie: November 2003
  • Niet online
Nexxennium schreef op zondag 19 maart 2006 @ 22:46:
[...]

offtopic:
Psst, AJAX met xmlHTTPRequest is juist ontwikkeld door MS ;) Dat de implementatie door moderne browsers een stuk beter is (en dat er een W3C-compliant alternatief voor is) is een ander issue.
Dat weet ik, en je hoort me ook niets negatiefs zeggen over IE. Enkel dat de implementatie anders is. Waar IE op een ActiveX object leunt, hebben overige browsers een native JS object.

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Met wat googlen kwam ik op deze en deze pagina terecht, misschien heb je er wat aan.

[ Voor 3% gewijzigd door XWB op 19-03-2006 23:00 ]

March of the Eagles


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik heb geen idee wat "line 16" is, want ik roep een hoop javascript bestandjes aan in het header.
Line 16, is dat hier een voorbeeld of krijg je echt een foutmelding op line 16?*

Want dan kan je mij niet wijsmaken dat jij niet kan uitrekenen wat line 16 is ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Er wordt door IE niet bij verteld in welke Javascript-file het "line 16" is.

Maar je kunt ook "Foutopsporing in scripts uitschakelen" uitvinken bij Internet-opties onder het tabblad "Geavanceerd". Dan krijg je een hele debugger voor je neus bij een fout ;) Dat is niet een apparaat waar je heel blij van wordt, maar je kunt in ieder geval wel precies zien waar het mis gaat.

  • André
  • Registratie: Maart 2002
  • Laatst online: 23-02 17:02

André

Analytics dude

Volgens mij is het bij in IE zo dat je zeg maar alle externe scripts inline moet plaatsen zodat je kunt zien wat echt line 16 is. Dat is de manier waarop hij telt geloof ik :/

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
André schreef op maandag 20 maart 2006 @ 10:50:
Volgens mij is het bij in IE zo dat je zeg maar alle externe scripts inline moet plaatsen zodat je kunt zien wat echt line 16 is. Dat is de manier waarop hij telt geloof ik :/
Ik heb al heel wat javascriptjes gedebugged, maar kan me niet heugen dat IE ook maar 1 keer de juiste regel aangaf. Maar dat kan aan mij liggen. Tegenwoordig kijk ik er niet eens meer naar en ga ik gewoon her en der wat alertjes plaatsen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
King_Louie schreef op zondag 19 maart 2006 @ 22:35:
[...]
Misschien dat je ergens gebruik maakt van een object dat niet ondersteunt wordt door IE. Ben je soms met AJAX bezig, of een andere techniek waarbij IE andere implementaties heeft dan de rest van de wereld?
Nee, maar de precieze code doet er ook niet toe. Ik heb dit probleem (debuggen in IE) nu al vaker gehad en tot nu toe idd net als RobIII alertjes geplaatst. Zo ook nu, maar ik wordt er een beetje moe van. Ik wil nu wel eens een overzicht hebben van wat voud gaat, net als bij FF :)
André schreef op maandag 20 maart 2006 @ 10:50:
Volgens mij is het bij in IE zo dat je zeg maar alle externe scripts inline moet plaatsen zodat je kunt zien wat echt line 16 is. Dat is de manier waarop hij telt geloof ik :/
Idd - ook erg handig bedacht, overigens ;)

Bedankt voor de tips en links tot nu toe. Ik ga er later vandaag, als ik thuis ben, naar kijken. Als iemand nog een goede plugin weet voor IE - ik hoor het graag!

[ Voor 10% gewijzigd door Reveller op 20-03-2006 12:16 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Hier staat een stukje over de MS Script Debugger. Als je dan "debugger" in de js source zet, dan kom je meteen in debug-mode. Je kunt dan door de code steppen en breakpoints zetten.

| Toen / Nu


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Niet dankzij de MS Script debugger, maar old-fashioned debuggen door delen te weg-commenten, ben ik erachter gekomen waar de fout zit. Op een bepaald moment in mijn code wil ik controleren wat de waarde is van bepaalde cookies.

Als ik alleen regel 2 niet uitcomment, werkt de rest van mijn code OK. Op het moment dat ik regel 1 of regel 3 toevoeg, krijg ik een "Object doesn't support this property or method" error. Waar kan dit nu aan liggen? In FF werkt alles perfect, en in principe is met onderstaande formulering ook niets mis, anders zou IE zich ook op regel 2 stukbijten (wat hij dus niet doet):
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//wrap = getCookie('wordwrap') ? getCookie('wordwrap') : 'off';
rows = getCookie('rows') ? getCookie('rows') : 20;
//tabs = getCookie('tabs') ? getCookie('tabs') : 0;

function getCookie(sName) {
  var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb;
  while (i--) {
    aCrumb = aCookie[i].split('=');
    if (sName == aCrumb[0]) {
      return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null;
    }
  }
  return null;
}


Heeft iemand een idee waar de fout zit?

[ Voor 14% gewijzigd door Reveller op 20-03-2006 20:45 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
* kick * Ik zit nog steeds met hetzelfde probleem. Weet iemand een antwoord (zie post hierboven)?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Waarschijnlijk bestaan de cookies wordwrap en tabs niet.

Om de fout te zoeken kun je ook gebruikmaken van alert om de flow en variabelen in de gaten te houden. Zo werkte ik vroeger. Tegenwoordig vind ik de JS validator van MyEclipse fijner. En ook de FF validator.
edit:

Je kunt ook try catches om dubieuze code zetten, dat wil ook weleens helpen.

[ Voor 16% gewijzigd door JKVA op 21-03-2006 19:54 ]

Fat Pizza's pizza, they are big and they are cheezy


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Wat ik soms doe is alert()'s in de code zetten, die al dan niet een integer of een variabele alert, zodat je kan zien tot hoe ver je code werkt.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
edit:

nevermind

[ Voor 92% gewijzigd door RobIII op 21-03-2006 20:25 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

X-Lars schreef op maandag 20 maart 2006 @ 10:27:
Er wordt door IE niet bij verteld in welke Javascript-file het "line 16" is.
.
Omdat IE de hele troep inline interpreteert, dus gewoon ouderwets tellen.

Let op, voorbeeld:
HTML:
1
2
3
4
5
6
7
8
<html>
 <head>
  <title>this is a title</title>
 </head>
 <body>
  <script type="text/javascript" src="test.js"></script>
 </body>
</html>


JavaScript:
1
2
//alert
falert('test');


Op welke regel zal de error verschijnen? Op regel drie. Regel 1 is je <script>tag en je extern script begint dan op 2 te tellen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Slightly off-topic; ook weer iets beter: Internet Explorer Developer Toolbar Beta 2 Preview Update

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
die toolbar bevat geen javascript console. (althans ik heb hem nog niet gevonden)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

4of9 schreef op donderdag 23 maart 2006 @ 10:21:
die toolbar bevat geen javascript console. (althans ik heb hem nog niet gevonden)
Klopt, daarom was het ook off-topic (je kunt wel de DOM bekijken).

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik ben er nog steeds niet uit. De situatie is als volgt:
  • de cookies 'wordwrap', 'rows' en 'tabs' bestaan
  • de cookies 'wrap'en 'tabs' worden niet uitgelezen en ik krijg de error uit de TS
  • ook al zouden die cookies niet bestaan, dan geeft de functie getCookie null terug en is er geen reden voor IE om een error te geven. De variabelen 'wrap' en 'tabs' behoren dan de default waarden (resp. 'off' en 0) te krijgen.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//wrap = getCookie('wordwrap') ? getCookie('wordwrap') : 'off'; 
rows = getCookie('rows') ? getCookie('rows') : 20; 
//tabs = getCookie('tabs') ? getCookie('tabs') : 0; 

function getCookie(sName) { 
  var aCookie = document.cookie.split('; '), i = aCookie.length, aCrumb; 
  while (i--) { 
    aCrumb = aCookie[i].split('='); 
    if (sName == aCrumb[0]) { 
      return typeof aCrumb[1] != 'undefined'? unescape(aCrumb[1]) : null; 
    } 
  } 
  return null; 
}

Bij deze nogmaals de vraag of iemand een idee heeft. Ik heb er geen meer :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Reveller schreef op vrijdag 24 maart 2006 @ 12:17:
Ik ben er nog steeds niet uit. De situatie is als volgt:
  • de cookies 'wordwrap', 'rows' en 'tabs' bestaan
  • de cookies 'wrap'en 'tabs' worden niet uitgelezen en ik krijg de error uit de TS
  • ook al zouden die cookies niet bestaan, dan geeft de functie getCookie null terug en is er geen reden voor IE om een error te geven. De variabelen 'wrap' en 'tabs' behoren dan de default waarden (resp. 'off' en 0) te krijgen.
IE heeft wel een reden om een error te geven. Als je cookie niet bestaat en jij roept split aan op een nullwaarde, dan heeft IE zelfs veel reden om een error te geven.

Ik zou ook je variabelen niet in één regel initialiseren. Kwestie van smaak, maar ik kijk nu de hele tijd over die: i = aCookie.length heen :)

Nog iets, ik heb sterk de indruk dat het op die aCrumb fout gaat. Ik weet het niet zeker, maar mijn gedachte gaat daarheen.

edit:

Hier staat trouwens bijna dezelfde functie als die van jou. Deze zal wel werken, tenminste dat mag je wel verwachten van MS.
http://msdn.microsoft.com...nce/properties/cookie.asp

[ Voor 15% gewijzigd door JKVA op 24-03-2006 14:40 ]

Fat Pizza's pizza, they are big and they are cheezy


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
@JKVA - dank je, maar na een * HOOP * gepruts kwam ik erachter waarom IE vastliep. Het had niet met de getCookie functie te maken, hoewel ik hem toch maar heb aangepast uiteindelijk. De reden dan IE vastliep, was omdat wrap, rows en tabs niet expliciet als variabelen gedeclareerd waren. Nadat ik de code had veranderd in onderstaande, liep het perfect:
Java:
1
2
3
var wrap = getCookie('wordwrap') ? getCookie('wordwrap') : 'off'; 
var rows = getCookie('rows') ? getCookie('rows') : 20; 
var tabs = getCookie('tabs') ? getCookie('tabs') : 0; 

Ik heb mijn lesje om niet slordig te programmeren nu wel geleerd! Hopelijk heeft iemand hier in de toekomst nog wat aan :)

[ Voor 25% gewijzigd door Reveller op 26-03-2006 15:52 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."

Pagina: 1