Я використовую jQuery. Як отримати шлях поточної URL-адреси та призначити її змінній?
Приклад URL:
http://localhost/menuname.de?foo=bar&number=0
Я використовую jQuery. Як отримати шлях поточної URL-адреси та призначити її змінній?
Приклад URL:
http://localhost/menuname.de?foo=bar&number=0
Відповіді:
Щоб отримати шлях, ви можете використовувати:
var pathname = window.location.pathname; // Returns path only (/path/example.html)
var url = window.location.href; // Returns full URL (https://example.com/path/example.html)
var origin = window.location.origin; // Returns base URL (https://example.com)
У чистому стилі jQuery:
$(location).attr('href');
Об'єкт розташування також має інші властивості, такі як хост, хеш, протокол та ім'я шляху.
.attr()
місцеположенням. (1) Це не елемент, тому $(location)
він в кращому випадку є тінистим, і (2) навіть якщо він працював, ви повинні використовувати .prop()
для отримання властивостей. .attr()
призначений для атрибутів HTML.
http://www.refulz.com:8082/index.php#tab2?foo=789
Property Result
------------------------------------------
host www.refulz.com:8082
hostname www.refulz.com
port 8082
protocol http:
pathname index.php
href http://www.refulz.com:8082/index.php#tab2
hash #tab2
search ?foo=789
var x = $(location).attr('<property>');
Це буде працювати лише в тому випадку, якщо у вас є jQuery. Наприклад:
<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>
$(location).attr('href'); // http://www.refulz.com:8082/index.php#tab2
$(location).attr('pathname'); // index.php
</script>
</html>
/index.php
замість index.php
імені шляху.
attr
передбачається використовувати лише на об'єктах DOM, для речей, які можна встановити за допомогою атрибутів HTML.
Якщо вам потрібні параметри хешу, присутні в URL, window.location.href
може бути кращим вибором.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
window.location.hash
Вам потрібно використовувати вбудований window.location
об’єкт JavaScript.
window.location.pathname
нічого не отримує після?
Просто додайте цю функцію в JavaScript, і вона поверне абсолютний шлях поточного шляху.
function getAbsolutePath() {
var loc = window.location;
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
}
Я сподіваюся, що це працює для вас.
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/'));
window.location - об’єкт у javascript. він повертає наступні дані
window.location.host #returns host
window.location.hostname #returns hostname
window.location.path #return path
window.location.href #returns full current url
window.location.port #returns the port
window.location.protocol #returns the protocol
в jquery ви можете використовувати
$(location).attr('host'); #returns host
$(location).attr('hostname'); #returns hostname
$(location).attr('path'); #returns path
$(location).attr('href'); #returns href
$(location).attr('port'); #returns port
$(location).attr('protocol'); #returns protocol
windo.location.origin
?
Це складніше питання, ніж багато хто може подумати. Кілька браузерів підтримують вбудовані об’єкти розташування JavaScript та пов'язані з ними параметри / методи, доступні через window.location
або document.location
. Тим НЕ менше, різні аромати Internet Explorer (6,7) не підтримують ці методи таким же чином, ( window.location.href
? window.location.replace()
Чи не підтримується) , так що ви повинні отримати доступ до них по- різному писати умовний код весь час ручної фіксації Internet Explorer.
Отже, якщо у вас є jQuery доступний і завантажений, ви можете також використовувати jQuery (розташування), як інші згадані, оскільки він вирішує ці проблеми. Якщо ви робите для прикладу певне перенаправлення геолокації на стороні клієнта через JavaScript (тобто за допомогою API Карт Google і методів об’єкта розташування), можливо, ви не хочете завантажувати всю бібліотеку jQuery і писати свій умовний код, який перевіряє кожну версію Internet Explorer / Firefox / тощо.
Internet Explorer робить незадоволеного кодування переднього коду, але jQuery - тарілка з молоком.
Для імені хоста використовуйте лише:
window.location.hostname
java-script пропонує безліч методів для отримання поточної URL-адреси, яка відображається в адресному рядку браузера.
Тестова URL-адреса:
http://
stackoverflow.com/questions/5515310/get-current-url-with-jquery/32942762
?
rq=1&page=2&tab=active&answertab=votes
#
32942762
resourceAddress.hash();
console.log('URL Object ', webAddress);
console.log('Parameters ', param_values);
Функція:
var webAddress = {};
var param_values = {};
var protocol = '';
var resourceAddress = {
fullAddress : function () {
var addressBar = window.location.href;
if ( addressBar != '' && addressBar != 'undefined') {
webAddress[ 'href' ] = addressBar;
}
},
protocol_identifier : function () { resourceAddress.fullAddress();
protocol = window.location.protocol.replace(':', '');
if ( protocol != '' && protocol != 'undefined') {
webAddress[ 'protocol' ] = protocol;
}
},
domain : function () { resourceAddress.protocol_identifier();
var domain = window.location.hostname;
if ( domain != '' && domain != 'undefined' && typeOfVar(domain) === 'string') {
webAddress[ 'domain' ] = domain;
var port = window.location.port;
if ( (port == '' || port == 'undefined') && typeOfVar(port) === 'string') {
if(protocol == 'http') port = '80';
if(protocol == 'https') port = '443';
}
webAddress[ 'port' ] = port;
}
},
pathname : function () { resourceAddress.domain();
var resourcePath = window.location.pathname;
if ( resourcePath != '' && resourcePath != 'undefined') {
webAddress[ 'resourcePath' ] = resourcePath;
}
},
params : function () { resourceAddress.pathname();
var v_args = location.search.substring(1).split("&");
if ( v_args != '' && v_args != 'undefined')
for (var i = 0; i < v_args.length; i++) {
var pair = v_args[i].split("=");
if ( typeOfVar( pair ) === 'array' ) {
param_values[ decodeURIComponent( pair[0] ) ] = decodeURIComponent( pair[1] );
}
}
webAddress[ 'params' ] = param_values;
},
hash : function () { resourceAddress.params();
var fragment = window.location.hash.substring(1);
if ( fragment != '' && fragment != 'undefined')
webAddress[ 'hash' ] = fragment;
}
};
function typeOfVar (obj) {
return {}.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase();
}
EX: З номерами портів за замовчуванням
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
Доменні імена, які ви реєструєте за правилами та процедурами дерева систем доменних імен (DNS). DNS-сервери того, хто керує вашим доменом з IP-адресою для цілей адресації. У ієрархії сервера DNS Корінне ім'я stackoverlfow.com - com.
gTLDs - com « stackoverflow (OR) in « co « google
Локальна система, у якій ви маєте підтримувати домен, який не є публічним у файлах хостів.
localhost.yash.com « localhsot - subdomain(
web-server
), yash.com - maindomain(
Proxy-Server
).
myLocalApplication.com 172.89.23.777
Якщо параметр має епоху, ?date=1467708674
то використовуйте.
var epochDate = 1467708674; var date = new Date( epochDate );
URL-адреса автентифікації з ім'ям користувача: пароль, якщо usernaem / пароль містить символ @,
наприклад:
Username = `my_email@gmail`
Password = `Yash@777`
то Вам потрібно буде кодувати URL @
як %40
. Переглянути ...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(проти) encodeURIComponent()
приклад
var testURL = "http:my_email@gmail:Yash777@//stackoverflow.com?tab=active&page=1#32942762";
var Uri = "/:@?&=,#", UriComponent = "$;+", Unescaped = "(-_.!~*')"; // Fixed
var encodeURI_Str = encodeURI(Uri) +' '+ encodeURI( UriComponent ) +' '+ encodeURI(Unescaped);
var encodeURIComponent_Str = encodeURIComponent( Uri ) +' '+ encodeURIComponent( UriComponent ) +' '+ encodeURIComponent( Unescaped );
console.log(encodeURI_Str, '\n', encodeURIComponent_Str);
/*
/:@?&=,# +$; (-_.!~*')
%2F%3A%40%3F%26%3D%2C%23 %2B%24%3B (-_.!~*')
*/
Це також буде працювати:
var currentURL = window.location.href;
Ви можете увійти в систему window.location і переглянути всі параметри для використання лише URL-адреси:
window.location.origin
для використання всього шляху:
window.location.href
також є місце розташування. _ _
.host
.hostname
.protocol
.pathname
Якщо хтось хоче об'єднати URL-адресу та тег хеш, поєднайте дві функції:
var pathname = window.location.pathname + document.location.hash;
Я маю це викреслити змінні GET.
var loc = window.location;
var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
Ви можете просто отримати свій шлях, використовуючи сам js, window.location
або location
дасте вам об’єкт поточної URL-адреси
console.log("Origin - ",location.origin);
console.log("Entire URL - ",location.href);
console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
Ось приклад отримання поточної URL-адреси за допомогою jQuery та JavaScript:
$(document).ready(function() {
//jQuery
$(location).attr('href');
//Pure JavaScript
var pathname = window.location.pathname;
// To show it in an alert window
alert(window.location);
});
$.getJSON("idcheck.php?callback=?", { url:$(location).attr('href')}, function(json){
//alert(json.message);
});
Нижче наведено приклади корисних фрагментів коду, які можна використовувати - деякі приклади використовують стандартні функції JavaScript і не є специфічними для jQuery:
Див. 8 Корисні фрагменти jQuery для URL-адрес та запитів запитів .
Використовуйте window.location.href . Це дасть вам повну URL-адресу .
window.location дасть вам поточну URL-адресу , і ви можете отримати з неї все, що завгодно ...
Якщо ви хочете отримати шлях до кореневого сайту, використовуйте це:
$(location).attr('href').replace($(location).attr('pathname'),'');
.replace('#.*', '')
? Видалити не тільки хеш-позначку, але і все після неї?
Дуже часто використовуються топ-3
1. window.location.hostname
2. window.location.href
3. window.location.pathname
var path = location.pathname
повертає шлях поточної URL-адреси (jQuery не потрібен). Використання не window.location
є обов'язковим.
Усі браузери підтримують об’єкт вікна Javascript. Він визначає вікно браузера.
Глобальні об'єкти та функції стають частиною об'єкта вікна автоматично.
Всі глобальні змінні - це властивості віконних об’єктів, а всі глобальні функції - це його методи.
Весь HTML-документ також є властивістю вікна.
Таким чином, ви можете використовувати об’єкт window.location, щоб отримати всі пов'язані з URL-адресою атрибути.
Javascript
console.log(window.location.host); //returns host
console.log(window.location.hostname); //returns hostname
console.log(window.location.pathname); //return path
console.log(window.location.href); //returns full current url
console.log(window.location.port); //returns the port
console.log(window.location.protocol) //returns the protocol
JQuery
console.log("host = "+$(location).attr('host'));
console.log("hostname = "+$(location).attr('hostname'));
console.log("pathname = "+$(location).attr('pathname'));
console.log("href = "+$(location).attr('href'));
console.log("port = "+$(location).attr('port'));
console.log("protocol = "+$(location).attr('protocol'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
location.pathname
де ви використовуєте location.path
- чи потрібно цю відповідь оновлювати?
var newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
// get current URL
$(location).attr('href');
var pathname = window.location.pathname;
alert(window.location);
У jstl ми можемо отримати доступ до поточного шляху до URL-адреси за допомогою. pageContext.request.contextPath
Якщо ви хочете здійснити дзвінок ajax,
url = "${pageContext.request.contextPath}" + "/controller/path"
Наприклад: на сторінці http://stackoverflow.com/questions/406192
це буде даноhttp://stackoverflow.com/controller/path