Получение пути 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/