I started a project where I used pure CSS and Ajax on the interface, like how Google implemented the Gmail interface. But soon it was clear that Safari’s handling of Ajax and dynamic DOM element updates is very limited.
I created a “div” tag on the base page to load various sections of the website into it using xmlHttpRequest object. Where Safari (and Shiira as well as Opera) failed was when I started loading a separate page into another “div” tag that was dynamically created by the “div” tag created by the base page. At first the problem persisted only within my application. But then I was able to recreate the problem by making a bare application just to load one “div” tag into another.
So basically, Safari is unable to recognize nested HTML elements created by xmlHttpRequest…. Or so my theory goes.
Yuck…
UPDATE 08.02.2006: I tested using a plain javascript to load DOM elements into each other without Safari complaining. So one can assume the issue is only with loading DOM elements via xmlHttpRequest or that the particular method I am using makes Safari very unhappy.