I've had some luck writing debug logging information to Firebase ( http://www.firebase.com/ ) . Some similar solution (sending text debug info to some remote machine from the Xbox, using a JavaScript-based library) ought to work - I use Firebase because it's relatively easy and I'm familiar with it.
This is obviously a weird way to use Firebase, and a very lame process for debugging. I write debug logging code, upload a new version of my project to a public server, reload on the Xbox, watch for output using the Firebase data debugger, make changes, and repeat.
Sometimes, changes I make break the page in a way that stops execution of my code, and I get no debug data, so I have to step back carefully and figure out what I did. Sometimes after I make a mistake, exiting and reloading IE on the Xbox seems necessary to force the new page to be loaded.
But it works enough of the time to be useful, and I haven't found a better solution, besides just guessing at what the bugs are.
In general, IE on the Xbox 360 is supposed to behave like IE 9, and you should be able to use IE 9 to test content destined for the Xbox. But clearly there are differences. Here are a few things I've learned, some by trial and error:
Not Supported:
- console.log() (calling it will kill your script execution)
- prompt()
- plug-ins, flash, ActiveX controls, etc.
Supported:
- JavaScript
- some of HTML5, including Canvas .. but not Local Storage?
It can help in debugging to check the navigator.userAgent string, which will contain the substring "Xbox". The last I checked, I was seeing "5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Xbox)".
Whoever told you IE on Xbox doesn't support JavaScript is confused. It works fine.
I'd love to hear of some better debugging techniques.