[whatwg] URL decomposition on HTMLAnchorElement interface

Biju bijumaillist at gmail.com
Thu Mar 26 20:01:34 PDT 2009


On Thu, Mar 26, 2009 at 5:26 PM, Kartikaya Gupta
> This behavior seems rather inconsistent and possibly buggy.

At first look I also thought it is inconsistent
But later I found Firefox is very consistent.
I think reason why it happening like that is because Firefox clean up
URL by removing extra slash before host name
and adding a slash after host name and also convert host name to lowercase.

Try this

var a = document.createElement('a');
a.setAttribute('href', 'http:/Example.org:123/foo?bar#baz');   //Case 1
alert(a.href);
a.setAttribute('href', 'http:example.org:123/foo?bar#baz');    //Case 2
alert(a.href);
a.setAttribute('href', 'http:///example.org:123/foo?bar#baz');    //Case 3
alert(a.href);
a.setAttribute('href', 'http://///example.org:123/foo?bar#baz');    //Case 4
alert(a.href);

Firefox clean up the URL
and all shows "http://example.org:123/foo?bar#baz"

So now when you set host as null, I ASSUME following is happening

"http://example.org:123/foo?bar#baz"
===>
"http://<<<blank>>>/foo?bar#baz"
===>
"http:///foo?bar#baz"
===>
"http://foo/?bar#baz"


Firefox do this same for protocols http, https, ftp for others it wont
allow hostname change.

Setting
a.hash = null;
a.search = null;
are allowed for http, https, ftp, file and jar
(may be for data: also, I have not tested it)

You can use a null string instead of null.
And I know host name can not be set to space or a string containing space.
But it is allowing invalid characters like !$%^&*( etc.
Get confused when it find @#? as hostname

Now question is do we need to allow to set host to a null or ""?

PS: Jar protocol example
"jar:http://example.org:123/foo!/?bar#baz"



More information about the whatwg mailing list