views:

633

answers:

4

In firefox, using this javascript:

top.location.hash = "#here%20are%20spaces";

changes the browser url to:

http://mysite.com/#here are spaces

I expected firefox to show the encoded spaces as %20 in the browser url.

  1. What's going on here? Why is firefox not setting the url to the string as I passed it?
  2. How can I force firefox to update the url with the encoded characters?

and...

If I add set the url to

top.location.hash = "#here%20are%20spaces%";

It works(!?), albeit with an extra unwanted % appended to the end. I am not sure if this is a bug or a feature. Ideas or references on how to proceed?

+3  A: 

%20 are replaced with an empty space (in firefox 3) just for readability purpose. You shouldn't worry about it.

Luca Matteis
For the cutting and pasting of permalinks, it is an issue.
jedierikb
Why is that, maybe you can explain what exactly your problem is...if you copy and paste such an url that has a space, into a different browser, it is automatically interpreted as %20.
Luca Matteis
Wanted to ensure copy and paste would work without line breaks, which I now see it does.
jedierikb
+2  A: 

It still seems to be an active Firefox Bug for this issue (albeit reported for Firefox in Ubuntu, but also seen for other OS)....

VonC
+2  A: 

Firefox displays the unencoded value in the location bar, as it does for all all URLs that contain encoded values. Try to go to some url with special characters, then cut & paste it to notepad/...

Have you tried if it works anyway and does what you want?

sth
A: 

That's a security precaution. If it wasn't there, one could encode character that looks just like "a" in paypal.com string inside your address bar.