Closed Bug 11407 Opened 25 years ago Closed 25 years ago

NOSCRIPT tags hang document.write execution

Categories

(Core :: Networking, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: slamm, Assigned: vidur)

References

()

Details

I have only tested this on Linux, but I am guessing this not hooked up across
the board.

This may be a dup of bug #9027.
Blocks: 11409
Looking at the source of the page (see below) this does not look like a redirect
issue. It is either a frames problem or a JS problem. Prashant, can you tell
what is going on in this page?

<HTML>
<HEAD>
<TITLE>Customize Channel: Headline News by Reuters</TITLE>
</HEAD>

<SCRIPT LANGUAGE="JavaScript">

if (navigator.appName== "Netscape" && parseInt(navigator.appVersion) <= 2) {
   document.location.replace("/badbrowser.tmpl");
}
</SCRIPT>
<NOSCRIPT>
<META HTTP-EQUIV=Refresh CONTENT="0; URL=/badbrowser.tmpl">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var welcome_string = 'YES';
var mynetscape_source = '1';
if (welcome_string != 'YES' && mynetscape_source.toUpperCase() == '1') {
  var str = parseInt(1000*Math.random());
  document.location.replace("./welcome.tmpl?s="+str);
}
else {
document.writeln("<FRAMESET ROWS=\"100%,*\" FRAMEBORDER=\"no\" BORDER=0
onResize=\"document.location.reload();\">");
document.writeln("<FRAME SRC=\"/mys/blank.html\" NAME=\"forms\">");
document.writeln("<FRAME SRC=\"./setup_state.tmpl?&services=reuters&mn_yes=1\"
NAME=\"state\" MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no BORDERCOLOR=#FFFFFF>");
document.writeln("</FRAMESET>");
document.writeln(unescape("%3C") + "!--");
}
</SCRIPT>
</HTML>
Assignee: gagan → rpotts
Target Milestone: M9
Assignee: rpotts → valeski
Summary: Redirect does not work → Frame or JS problem.
Resummarizing.
Assignee: valeski → vidur
Component: Necko → Networking-Core
this might be a js execution ordering issue. META refreshes are working.
Actually I just tried to investigate this one, and it seems problem lies in
META-Rfreshing.
Here is the test you could conduct.

Try this code.

<HTML>
<HEAD>
<TITLE>Welcome</TITLE>
</HEAD>
<NOSCRIPT>
<META HTTP-EQUIV=Refresh CONTENT="0; URL=/badbrowser.tmpl">
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("Meta does not give any problem !!!!")
</SCRIPT>
</HTML>

You won't see anything on the screen, coz its not going till document.write. And
we expect to see the statement "Meta does not give any problem !!!!" on screen,
but we can't see it. So execution gets stopped somewhere in META.

On other hand if we try this code without META.
<HTML>
<HEAD>
<TITLE>Welcome</TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
document.write("Meta does not give any problem !!!!")
</SCRIPT>
</HTML>

Then it works fine. We can see statement "Meta does not give any problem !!!!"
on screen.

So I guess problem is there somewhere in META.
Thanks prashant. I still don't think the refresh is the problem, because you can
pull out the meta refresh line and get the same results. It actually seems like
it's the NOSCRIPT tag is messing things up. This snippet has the same problem:
<HTML>
<NOSCRIPT>
</NOSCRIPT>
<SCRIPT LANGUAGE="JavaScript">
document.write("This doesn't print!")
</SCRIPT>
</HTML>

Perhaps a parser ussue? cc'ing rickg
Might this be somehow related to bug #9059?

It seems like a NOSCRIPT element appearing between the HEAD and BODY or FRAMESET
elements (or the degenerate case where there is no HEAD or BODY) causes problems
with both document.write and frameset loading.

In the following example:

<html>

  <head>
    <script language="JavaScript">
    document.write("head!");
    </script>
  </head>

  <noscript>
  </noscript>

  <body>

    <script language="JavaScript">
    document.write("body!");
    </script>

    <p>Hello world.</p>

  </body>

</html>

Neither the 'head!' nor 'body!' strings show up when the NOSCRIPT element
appears either before the HEAD element or between the HEAD and BODY elements. If
the NOSCRIPT appears *inside* the HEAD or BODY elements, everything works fine.
(Linux M8)
Summary: Frame or JS problem. → NOSCRIPT tags hang document.write execution
Yes, it looks like it is probably the same problem as bug 9059. I won't mark it
as a dup yet, but I'll update bug 9059.

changing summary - nice catch chad
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
this page, and the test case below, now work with 8/25 M10 builds, marking
resolved and verified
Status: RESOLVED → VERIFIED
Bulk move of all Networking-Core (to be deleted component) bugs to new
Networking component.
You need to log in before you can comment on or make changes to this bug.