Re: Hoisting <base> into <head>

On Tue, 7 Sep 2010, Henri Sivonen wrote:
>
> 2) https://bugzilla.mozilla.org/show_bug.cgi?id=592880
> 
> Hyperlatex generates a frameset with a content frame and a table of 
> contents frame. The table of contents puts <base target> after an 
> explicit <body> tag. Thus, the links in the ToC are mistargeted in 
> Firefox 4 betas. Hyperlatex also uses an Almost Standards doctype, which 
> means IE8 uses the IE8 Almost Standards mode and IE7 uses the IE7 
> Standards Mode. This means the links are also mistargeted in IE7 and 
> IE8. Since the output of Hyperlatex is already broken in IE8, I treated 
> this as an evangelism bug. Clicking the Compatibility View button in IE8 
> doesn't make the links work as intended, since the links were 
> mistargeted already in IE7.
> 
> However, Hyperlatex seems to be an effectively unmaintained piece of 
> software, Hyperlatex-generated output appears on many servers around the 
> Web and Hyperlatex is available in e.g. Ubuntu repositories so it will 
> probably find users who generate even more content. It is not really 
> useful to break that content in Firefox 4 (or IE9!) even if it is broken 
> in IE7 and IE8.
> 
> 3) https://bugzilla.mozilla.org/show_bug.cgi?id=593807
> 
> The United Airlines online check-in process breaks for non-U.S. 
> citizens, because a page has the tag <c:set var="static_c2c" 
> value="true" scope="request"/> before <base>. In IE8, united.com is on 
> the Microsoft maintained Compatibility Mode list. Also, the problematic 
> page is doctypeless, so it gets processed in the IE 5.5 mode in IE8. 
> However, even if the page were in the IE8 Standards Mode, the <base> 
> would still take effect, because <c:set var="static_c2c" value="true" 
> scope="request"/> doesn't imply </head><body> in IE8. In IE9 mode in IE9 
> PP4, <c:set var="static_c2c" value="true" scope="request"/> implies 
> </head><body> as in the HTML5 parsing algorithm and a subsequent <base> 
> doesn't take effect.

On Tue, 7 Sep 2010, Adam Barth wrote:
>
> It seems like the easiest solution is just to allow <base> elements 
> outside of <head> to override the base URL.

I've done that, for href="" and target="".

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Wednesday, 8 December 2010 00:19:43 UTC