Amass

Parakeet is “Finished”

November 20th, 2006 Luke

After about a month of working on Parakeet during my spare time, it’s now ‘finished’. I’ve managed to get it all working(albeit kludgily), and I’m now on to planning out and sketching new features and interfaces. However, it doesn’t work under IE yet.

IE doesn’t seem to like the fact that I use this snippet of code to interact with part of the expense list:

addAmount = cell[1].childNodes[2].nodeValue;

For some reason, IE complains about that piece of code. It works just fine under Safari and Firefox, though.

IE also seems to have a problem with this piece of code:

document.getElementById(expenseID).innerHTML = req.responseText; freeReq(); updateTotal();

freeReq() and updateTotal() are both my functions, and neither of them are having any problems(they work just fine in other areas). But for some reason, setting the innerHTML of an element is bad. Or something. IE complains, at any rate.

IE also ignores a lot of my CSS setups. When we add a row to the expense table, we also dynamically set it’s class and ID attributes. I don’t think that IE is working with either of those, because the ID attribute doesn’t get used correctly in updateTotal(), and the class attributes don’t appear to be taking effect.

I never really liked IE; my dislike is now growing into seething hatred.

ActiveX and IE; Oh no!

November 8th, 2006 Luke

Over the past week or so, development on the Parakeet project has come to a point where I am, unfortunately, forced to do web testing. You just can’t test Ajax locally, I guess.

Now, this is all well and good. Dandy, even. It means that I can test my stuff from wherever I need to - as long as there’s an internet browser. However, while testing, I’ve found some…inconsistencies.

At home on Safari and here at school on Firefox, everything works just fine. However, running my Ajax-enabled pages under IE pops up the infamous infobar, with the menacing message:

To help protect your security, Internet Explorer has restricted this file from showing active content that could access your computer. Click here for options…
This is a bit of a problem. Even though Firefox(and Safari, to a lesser extent - yay Intel Macs!) has a growing hold on the browser market, people still use IE. And in order for Parakeet to be really useful, it has to at least work in IE6+.

I’ve been googling incessantly for a while, but to no avail. The best solution I can find to this problem is to use a hidden/small iFrame, and do some sort of dynamic loading in there. That, to me, is a kludgy solution that could be vastly improved on. I went to the w3schools writeup on XmlHttpRequest to try and figure out if there was a better way to write my code, but there isn’t; it’s written the exact way they give it to me. But for some reason, their code works, and mine doesn’t.

I’ve asked a few people about what exactly I need to do, and I’ve been lurking a few online forums to try and find answers. But it’s beginning to look more and more like I’m going to have to do a fair amount of reworking in order to get this all working.

What I don’t understand, though, is why other Ajax works. Gmail has no problems at all under IE, and I know for sure that it’s Ajax-driven. However, the infobar pops up for my Ajax. After taking a brief look at Gmail’s source, I’ve noticed that their ActiveXObject call(which is what Ajax on IE<7 needs) is the same as mine, albeit coded slightly differently. But mine doesn't work, and theirs does.

I guess it’s back to the drawing board…

Update: After messing around for a while, it turns out that the only problem was that IE didn’t like my <script> tags.