在JavaScript / JQuery中测试URL等效性(获取URL的规范形式)

时间:2011-06-30 11:06:50

标签: javascript jquery

相同的网址可以用许多不同的表示形式表示 例如假设浏览器当前加载的页面为http://www.example.com/about.html

从浏览器的角度来看,可以认为以下网址是等效的:

  • http://www.example.com/contact-us.htmlhttp://www.example.com/contact-us.html
  • http://www.example.com/contact-us.htmlcontact-us.html
  • http://www.example.com/contact-us.html.
  • http://www.example.com/contact-us.html/contact-us.html

考虑到这一点,有没有一种简单的方法可以使用JavaScript来确定这种等价?

或者,有没有办法获得URL的规范形式,以便可以比较规范形式作为达成答案的方式?

1 个答案:

答案 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/,显示了如何从任何内容中创建完全限定的网址。

我不能保证它会在每个浏览器中都这样做,但我从未见过任何其他行为。