Ticket #557 (closed defect: wontfix)

Opened 2 years ago

Last modified 15 months ago

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

Reported by: andyhot@… Owned by: ttrenka
Priority: high Milestone:
Component: Core Version: 0.3
Severity: normal Keywords:
Cc: andyhot@…

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

Changed 2 years ago by anonymous

  • cc andyhot@… added

Changed 2 years ago by alex

  • owner changed from anonymous to alex
  • status changed from new to assigned

Changed 2 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)

Changed 2 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.

Changed 2 years ago by schallm

Sorry, my question should have been...

Should a head tag be inside the BODY tag?

Changed 2 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.

Changed 2 years ago by ttrenka

  • owner changed from alex to ttrenka
  • status changed from assigned to new
  • milestone changed from 0.3release to 0.3.1

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

Changed 2 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 :)

Changed 2 years ago by ttrenka

  • status changed from new to closed
  • resolution set to invalid

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

Changed 2 years ago by ttrenka

  • status changed from closed to reopened
  • version changed from 0.2 to 0.3
  • resolution deleted
  • milestone changed from 0.3.1 to 0.4

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

Changed 2 years ago by ttrenka

  • status changed from reopened to closed
  • resolution set to wontfix

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.

Changed 15 months ago by anonymous

  • milestone deleted

Milestone 0.4 deleted

Note: See TracTickets for help on using tickets.