开发者

Webkit turning "#" into %23 causing 404 errors?

开发者 https://www.devze.com 2023-03-29 18:51 出处:网络
I\'m just building a simple ajax site but running into a problem in safari and chrome. I\'m just creating a simple redirect if the user goes to a page i.e.

I'm just building a simple ajax site but running into a problem in safari and chrome. I'm just creating a simple redirect if the user goes to a page i.e.

"/blog" 

they would be redirected to

"/#/blog"

code :

url = window.location.pathname

if(url != "/") {
   window.location.path开发者_如何学编程name = "/#" + url
}

This is working great in FireFox but unfortunatly webkit browsers are turning the "#" into a "%23" and giving a 404, for example:

"/%23/blog"

How can I prevent this?

Thanks, Alex


pathname refers to everything after the host, and before the query string and hash. Consider this instead:

window.location.hash = window.location.pathname;
window.location.pathname = "/";

I'm not exactly sure which browser(s) are implementing the JavaScript spec correctly, but WebKit's behavior seems correct to me.


You are setting pathname, which, by definition, does not include the hash. Webkit is trying to fix that for you (Firefox just made a better guess of what you wanted). Try this:

window.location = '/#/blog';
0

精彩评论

暂无评论...
验证码 换一张
取 消