I performed a detailed analysis of the problem. For starters, the
document object created in Firefox when the mime type is
application/xhtml+xml does not have the write() method. I wrote my own,
but even with that in place, a simple map would render, pan and zoom,
change map type, but the terms of use was not updated properly, and the
marker did not respond to clicks.
This indicated that some basic document features, in addition to the
write() method, were not implemented or working properly. In
particular, the event model did not seem to be working the way the Maps
API expects.
I concluded that this was a problem I could not resolve by creative
coding in the user page, but one that required correction by the Google
Maps API development team.
There is a solution that may work for you. It requires that you embed a
second html document within your main page. This can easily be done
with the html iframe element, as illustrated here:
http://www3.telus.net/DougHenderson/Map_in_iframe_v2.html
An alternate implementation uses html and xhtml object elements as
shown here:
http://www3.telus.net/DougHenderson/Map_in_object_v2.html
I also have an example that uses mime type of application/xhtml+xml
here:
http://www3.telus.net/DougHenderson/Map_in_object_v2.xhtml
This one does not work properly, as I have not been able to pass
commands from the parent window to the embedded object. You will see an
error on the javascript console when you press the "Click here to
change location" button. If you don't need this feature, object element
should let you embed a page with mime type text/html inside your page.
The key to using this method, is to create a page containing a map that
completely fills a page, and which adjusts to the available space.
Then, the embedded map will snuggle into the space provided by the
iframe or object element without overflow or gaps.