Skip to main content

My first problem with AJAX

I was using Callback (AJAX) to retrieve a page i had developed .
Lets start all over,
I was using AJAX to retrieve a part of the contents of a web page. Cool, simple, it downloaded without a pain, then I innerHTMLed it to a span tag. Worked fine, successful, clapped my hands etc.etc.

Clicked on the button which had seemed to appear out of nowhere.
And then, it all fell apart.
The feared exclamatory symbol appeared on the status bar.... And for the newbies, thats an indication of a JavaScript error in IE.
Of course, as usual i was all curses at my IE window......Anyway to make a long story short (i AM quite sleepy u know). the scripts which i seemed to be innerHTMLing to the span tag are not executed. And what i mean is anything between the script tags which have been innerHTMLed to that span tag are not executed.

Of course i can see a ray of hope in the distance. I mean the distance till tomorrow morning.


And just for kicks, check out a hi-fundoo flash file titled EPIC 2004 .
And for all the Indians out there, Check out Param Padma. 1 TeraFlop/second.
For the non-indians of course there is Earth Simulator, Japan's 40-Teraflop/second.

Comments

Rakesh Pai said…
I wonder if you fixed this problem. It would be nice to share your solution with us.

If you haven't solved it yet, the problem might be your markup's doctype, if you are serving as XHTML. You can't innerHTML text into a XHTML document. In fact, the XHTML DOM doesn't have an innerHTML function at all!

Instead, you should use the DOM methods (like createElement) to create the markup you need.

It's logical, if you think about it. If you innerHTML text into a XHTML document, you might break the XML structure of the document. Using the DOM functions, you can never break the XML structure.

Of course, all of this is not a problem if you are using HTML. HTML is not valid XML anyway!

By the way, if you are using XHTML, don't use IE! IE doesn't even support XHTML. It thinks it is HTML and proceeds to render it like any HTML page. Not usually a problem, but you don't really have any of the benefits of XHTML that way, and you would never know (unless you validate) if your markup is ill-formed.

Actually, just stop using IE anyway. Get Firefox! And one you have the JS-related extensions installed, you'll see how easy it is to develop client-side code. :)
Rakesh Pai said…
Disregard everything I said. It was said in one of those moments of utter stupidity. It is stupid, because:

1. Since IE renders XHTML as HTML, innerHTML is supported with any document type anyway.
2. Most recent versions of Firefox have support for innerHTML with XHTML documents, provided the string you are adding is a valid XML snippet.
Sachin Nayak said…
Disregarded, etc.etc. Anyway I think i may have stumbled on a solution. I am retrieving srcipts using AJAX, looping thru them using getElementsByTagName(as i have tags other than script tags). eval'ing the contents of all script tags which have no src attribute. If they have a src attribute, a new script element uis created, and added appropriately. This seemed to work for the samples i had tried for. I do need to check with the real code.
Sachin Nayak said…
This comment has been removed by a blog administrator.

Popular posts from this blog

Theming in Whidbey using CSS

Continuing my blog titled Themes in Whidbey . I would like to mention some great points I did find out today about Whidbey featrures. How many times have you got sick of developing Sites which have themes???? I mean every page u create has to have, maybe in ASP, something like <link href="<%=Session["ThemeFile"]%>.css"/> I have been doing since a long time. Do mention if you have a simpler method of defining a variable CSS for your page!!! Whidbey simplifies this further. Now in ASP.NET, all you will have to do is Create Themes directory, if not aldready present, Create a directory for each theme required, maybe Black, Gray,etc. Dump your CSS files into this directory. in Page_PreInit method define the Theme as Page.Theme="<Theme directory Name>". Further can be made into Page.Theme=(string)Session["ThemeType"] and viola, your theme management is take care by ASP.NET When you want to change the theme, the...

B.O.F.H.

Was browsing the net, and found some old link to BOFH. Not sure as to how many used to read PCQuest some time back when it used to come, but i remember reading them, with of course re-reads and re-re,etc...i can go on you know. Anyway, it's about a system operator who is bugged by no-brainers asking silly computer related queries, and this guy repling with wierd answers. I had never known the origin of this character, until i saw this . Anyway for those who have never read BOFH, here are two of them.