0

我正在尝试获取 /blog 以输入 url_pathname。

var link = 'http://www.example.com/blog';
alert(url_pathname);

如果链接是“http://www.example.com/blog/post”,则 url_pathname 将是 /blog/page

我尝试了以下但没有成功。

var link = 'http://www.example.com/blog';
var url_pathname = link[0].pathname;
alert(url_pathname);
4

2 回答 2

2

这些pathname属性仅在location对象和链接元素上可用。将字符串分配给锚点,并从解析的链接中读取值,如下所示:

var link = 'http://www.example.com/blog';
var a = document.createElement('a'); // Create a dummy <a> element
a.href = link;                       // Assign link, let the browser parse it
var url_pathname = a.pathname;
alert(url_pathname);


失败方法的解释:

  • link是一个字符串。
  • 当您使用 时link[0],您将获得字符串的第一个字符h.
  • 然后,您试图获得pathname它的属性。此属性未在字符串上定义,因此您会收到undefined.
    (添加了这个解释来阐明为什么 JavaScript 没有抛出错误)
于 2012-02-19T16:37:00.657 回答
0

试试这个,让它不那么冗长:

//var link = 'http://www.example.com/blog'; // try this
var link = "http://www.example.com/blog/post";
var i = link.indexOf('.com')​​​;//assuming ends in .com, find where it starts
alert(link.substring(i+4));//use +4 to skip .com

查看演示:http: //jsfiddle.net/c6MMz/

​</p>

于 2012-02-19T16:39:21.173 回答