Получение пути URL-адреса, хранящегося в переменной

Я пытаюсь получить / блог, чтобы поместить в 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);

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 не выдавал ошибку)

Попробуйте это, сделав его менее многословным:

//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/

Другие вопросы по тегам