如何使用位置对象来解析URL而无需在javascript中重定向页面?

e-s*_*tis 2 javascript url

该浏览器有一个非常有效的URL解析器,让你得到location.href,hash,query从目前的URL等.我想使用它而不是使用正则表达式编写代码.

如果您设置location.href或执行此操作location.replace(url),则会在Chrome中重定向该页面.我试图在这个浏览器中获取位置原型,但我找不到location.prototype.有一个location.__proto__被描述为Locationjs控制台中的类,但我找不到实例化它的方法.另外,我需要一个跨浏览器解决方案,__proto__在IE中不可用.

如果不可能的话,不要给我一个正则表达式替代方案,只要告诉我硬道理,只要你能用证据来支持它.

Mah*_*dsi 5

是的,这是非常可能的!如果创建新a对象,则可以使用位置字段而无需重定向浏览器.

例如:

var a = document.createElement('a');
a.href = "http://openid.neosmart.net/mqudsi#fake"
Run Code Online (Sandbox Code Playgroud)

您现在可以访问.hash,.pathname,.host,和所有其他位置的好东西!

> console.log(a.host);
openid.neosmart.net
Run Code Online (Sandbox Code Playgroud)