Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#557 closed defect (wontfix)

IE 6 refuses to load page if dojo is loaded in HEAD and a BASE tag exists before that.

Reported by: andyhot@… Owned by: Tom Trenka
Priority: high Milestone:
Component: Core Version: 0.3
Keywords: Cc: andyhot@…
Blocked By: Blocking:

Description

Initially discovered in Tacos ( http://tacoscomponents.jot.com/BugReporter/Bug86 ) this problem appears when a page has this hierarchy

  • BODY
    • HEAD
      • BASE
      • SCRIPT (to include dojo)

In this particular case, IE popups an alert saying: " Internet Explorer cannot open the Internet site localhost:8080/tacos4-demo/app. Operation aborted ".

The offending code was introduced in hostenv_browser.js (rev.3206, line 376, relating to VML addition) and it appears that IE dislikes calls to document.createStyleSheet() after a BASE tag has been parsed-loaded.

Solutions

  • Put the BASE tag after the SCRIPT that includes dojo, or
  • Revert hostenv_browser.js to rev.3024 which uses document.write for VML addition

In Tacos / Tapestry case, we're opting for the second one, since the BASE tag is automatically included by the framework.

Andreas Andreou

Change History (12)

comment:1 Changed 13 years ago by anonymous

Cc: andyhot@… added

comment:2 Changed 13 years ago by alex

Owner: changed from anonymous to alex
Status: newassigned

comment:3 Changed 13 years ago by anonymous

Just a question, but is having the head inside the base even valid html? I use the following structure and everything works fine in IE6.

<html>
	<head>
		<base></base>
		<script></script> (include dojo)
	</head>
	<body>
	</body>
</html> 

This is an IE6 only site, but it uses the above structure. (http://test.schallcentral.com/Dashboard.aspx)

comment:4 Changed 13 years ago by andyhot@…

Actually, i've seen your test site a few weeks ago :) I didn't quite get your comment on 'having the head inside the base even valid html' but anyway, viewing at your html helped pinpoint the problem.

We both have xhtml1-transitional.dtd DOCTYPE and our html is

<html>
	<head>
		<base href='...'/>
		<script></script> (include dojo)
	</head>
	<body>
	</body>
</html> 

the difference being in the way the base tag is written (you use <base></base>).

We'll probably patch Tapestry to output <base></base>, even though rev.3024 of hostenv_browser.js didn't exhibit this problem.

comment:5 Changed 13 years ago by Michael Schall

Sorry, my question should have been...

Should a head tag be inside the BODY tag?

comment:6 Changed 13 years ago by andyhot@…

Grrr... it's a typo... i meant HTML in the initial bug report, just like the example html code you and I wrote in the previous comments.

comment:7 Changed 13 years ago by Tom Trenka

Milestone: 0.3release0.3.1
Owner: changed from alex to Tom Trenka
Status: assignednew

It's half dozen of one, 6 of another; we'll probably revert but we want to give it thought.

comment:8 Changed 13 years ago by andyhot@…

We recently added a patch (http://issues.apache.org/jira/browse/TAPESTRY-935) that makes tapestry output

<base href='...'/><!--[if IE]></base><![endif]--> 

so this no longer affects us... but i guess, other IE users may come across this :)

comment:9 Changed 13 years ago by Tom Trenka

Resolution: invalid
Status: newclosed

Andy, Glad to hear you found a solution. I'm going to close this bug for now and keep an eye out for recurrences.

comment:10 Changed 13 years ago by Tom Trenka

Milestone: 0.3.10.4
Resolution: invalid
Status: closedreopened
Version: 0.20.3

With the new vector APIs we're working, I'm reopening this ticket, we'll see what we can do about it.

comment:11 Changed 13 years ago by Tom Trenka

Resolution: wontfix
Status: reopenedclosed

I'm closing this ticket again; seems like gfx needs to have this setup this way, so we'll have to deal with this on a case by case basis.

comment:12 Changed 12 years ago by (none)

Milestone: 0.4

Milestone 0.4 deleted

Note: See TracTickets for help on using tickets.