G
Guest
I have been told on a firefox support forum to ask in a java forum
(although I'm still convinced it is a firefox problem).
I had an arrangement like this, which has been working for 5 years (and
still works with old versions of firefox).
There is a frameset (on host a port 80).
The frameset contains two frames.
Its HEAD defines a number of javascript functions,
The top frame (a page on host a port 80) contains a form.
The action of the form is a java servlet (potentially running on a
different host, can be host b port 8080, or host a port 8080 which for
what the browser is concerned counts as a different host)
The servlet writes to the bottom frame a short message and some
javascript code which invokes functions in the frameset HEAD (like e.g.
parent.changeItem(...)) which modify the content of the form in the top
frame.
The javascript code and the user user.js contain appropriate provisions
to give permissions to update the form (.codebase_principal_support...).
All this worked perfectly. It ceased working in firefox 3.6 (i.e. when I
upgraded the CLIENT machine to suse linux 11.3)
The javascript generated in the bottom frame gives an error like
"parent.changeItem is not a function" ... it looks like the DOM of the
frameset is not yet known when the bottom frame is executed.
This does NOT occur if such javascript is present in a static html page
in the bottom frame, in a static html page loaded clicking an url in the
bottom page, or is generated by a CGI.
It occurs only when the CONTENT of the bottom frame is generated by the
java servlet. WHY SHOULD THE BROWSER MAKE ANY DIFFERENCE ON WHAT IS
GENERATING THE CONTENT ? A remote servlet, or a CGI, or an HTML should
be equivalent !
My current workaround is that the servlet stores the javascript in a
temporary html file on http server a, and issues a sendRedirect.
This way the error does not occur. As if it were a static html file or
the output of a CGI.
BUT WHY IS OUTPUT OF A JAVA SERVLET DIFFERENT ?
(although I'm still convinced it is a firefox problem).
I had an arrangement like this, which has been working for 5 years (and
still works with old versions of firefox).
There is a frameset (on host a port 80).
The frameset contains two frames.
Its HEAD defines a number of javascript functions,
The top frame (a page on host a port 80) contains a form.
The action of the form is a java servlet (potentially running on a
different host, can be host b port 8080, or host a port 8080 which for
what the browser is concerned counts as a different host)
The servlet writes to the bottom frame a short message and some
javascript code which invokes functions in the frameset HEAD (like e.g.
parent.changeItem(...)) which modify the content of the form in the top
frame.
The javascript code and the user user.js contain appropriate provisions
to give permissions to update the form (.codebase_principal_support...).
All this worked perfectly. It ceased working in firefox 3.6 (i.e. when I
upgraded the CLIENT machine to suse linux 11.3)
The javascript generated in the bottom frame gives an error like
"parent.changeItem is not a function" ... it looks like the DOM of the
frameset is not yet known when the bottom frame is executed.
This does NOT occur if such javascript is present in a static html page
in the bottom frame, in a static html page loaded clicking an url in the
bottom page, or is generated by a CGI.
It occurs only when the CONTENT of the bottom frame is generated by the
java servlet. WHY SHOULD THE BROWSER MAKE ANY DIFFERENCE ON WHAT IS
GENERATING THE CONTENT ? A remote servlet, or a CGI, or an HTML should
be equivalent !
My current workaround is that the servlet stores the javascript in a
temporary html file on http server a, and issues a sendRedirect.
This way the error does not occur. As if it were a static html file or
the output of a CGI.
BUT WHY IS OUTPUT OF A JAVA SERVLET DIFFERENT ?