Создание нового Местоположения возражает в JavaScript

Действительно ли возможно создать новый объект Местоположения в JavaScript? У меня есть URL как строка, и я хотел бы усилить то, что JavaScript уже обеспечивает для получения доступа к различным частям его.

Вот пример того, что я говорю о (я знаю, что это не работает):

var url = new window.location("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;
// etc etc

Похож на что-нибудь это возможное, или я должен был бы по существу создать этот объект сам?

67
задан Yahel 29 May 2011 в 15:05
поделиться

3 ответа

Ну, вы можете использовать элемент привязки для извлечения частей URL, например:

var url = document.createElement('a');
url.href = "http://www.example.com/some/path?name=value#anchor";
var protocol = url.protocol;
var hash = url.hash;

alert('protocol: ' + protocol);
alert('hash: ' + hash);
​

Он работает во всех современных браузерах и даже в IE 5.5+.

Посмотрите пример здесь .

120
ответ дан 24 November 2019 в 14:32
поделиться

Вы можете использовать возможности якорного элемента

var aLink = document.createElement("a");
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf";
alert(aLink.pathname);
8
ответ дан 24 November 2019 в 14:32
поделиться

Вы можете проанализировать его в регулярном выражении, чтобы получить части как совпадения ... У меня сейчас нет полного кода, но его можно использовать для получения данных запроса:

var myUrl = window.location.href;
var matches = myUrl.match(/([^\?]+)\?(.+)/);
var queryData = matches[2];

совпадений [0] - это полный строка, соответствует (1) - это первая часть URL-адреса (до?) ... вы можете создать регулярное выражение для анализа каждой части строкового URL-адреса, если хотите ...

Вы также можете использовать одна из многих библиотек, уже существующих для этого.

-2
ответ дан 24 November 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: