相同的网址可以用许多不同的表示形式表示
例如假设浏览器当前加载的页面为http://www.example.com/about.html
从浏览器的角度来看,可以认为以下网址是等效的:
http://www.example.com/contact-us.html
和http://www.example.com/contact-us.html
http://www.example.com/contact-us.html
和contact-us.html
http://www.example.com/contact-us.html
和.
http://www.example.com/contact-us.html
和/contact-us.html
考虑到这一点,有没有一种简单的方法可以使用JavaScript来确定这种等价?
或者,有没有办法获得URL的规范形式,以便可以比较规范形式作为达成答案的方式?
答案 0 :(得分:2)
我注意到当您通过javascript <a href="xxx">
从tagObj.href
标记中读取href时,您始终会获得完全限定的网址。因此,您的问题的一种可能性是创建一个隐藏的<a href="xxx" style="display: none;">
标记,将任何测试URL设置为您想要的,然后再将其读回。您将获得浏览器认为完全限定URL的内容,无论是“。”,“index.html”还是其他任何内容。然后,您可以将两个完全限定的URL相互比较。
以下是一个示例:http://jsfiddle.net/jfriend00/M7mNF/,显示了如何从任何内容中创建完全限定的网址。
我不能保证它会在每个浏览器中都这样做,但我从未见过任何其他行为。