Причина document.write(window.location)
пишет местоположение из-за toString
метода window.location
, который действительно возвращает window.location.href
.
// This will fallback to the location.pathname if this
// is not the location already or not an anchor.
var path = this.pathname || window.location.pathname;
var part = path.split('/').pop();
Путь - это все после доменного имени. Так, http://domain.com/something/file
ломается, как это:
- протокол:
http:
- имя хоста:
domain.com
- путь:
something/file
- HREF:
http://domain.com/something/file
(есть также порт, поиск (?this=that
) и хеш (#hash
), которые в этом случае были бы пустыми)
Итак, я беру something/file
и split
тин в массив, где это является /
, который был бы ["something", "file"]
После этого я pop
пинг от последней части массива, в этом случае "файл"
Оба window.location
и любой <a>
тег обладают этими свойствами. Так что, если вам нужно разобрать URL, вы можете сделать следующее в JavaScript:
var anchor = document.createElement('a');
anchor.href = '/about'; // this could be any relative or absolute url
А теперь anchor
будет иметь все эти свойства, если вы нуждаетесь в них. Нет необходимости в регулярном выражении или что-то еще.
Возможно, вы поступаете правильно; но я думаю, что это только запись «document.location» в этой первой строке. Попробуйте document.writeln (часть) в конце. – Katana314
Проверьте мой ответ с помощью JSFiddle :) –
Использование 'attr ('href')' * подразумевает * (при условии, что вы знаете, что вы делаете), что вы можете попытаться получить URL-адрес из 'href' элемент 'a', а не расположение страницы. Но я не совсем уверен, что вы пытаетесь сделать.Можете ли вы объяснить свое намерение немного лучше? –