Saya menggunakan jQuery. Bagaimana cara mendapatkan jalur URL saat ini dan menetapkannya ke variabel?
URL contoh:
http://localhost/menuname.de?foo=bar&number=0
Saya menggunakan jQuery. Bagaimana cara mendapatkan jalur URL saat ini dan menetapkannya ke variabel?
URL contoh:
http://localhost/menuname.de?foo=bar&number=0
Jawaban:
Untuk mendapatkan jalur, Anda dapat menggunakan:
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)
Dalam gaya jQuery murni:
$(location).attr('href');
Objek lokasi juga memiliki properti lain, seperti host, hash, protokol, dan pathname.
.attr()
di lokasi. (1) Ini bukan elemen, jadi $(location)
paling teduh, dan (2) bahkan jika itu berhasil, Anda harus menggunakan .prop()
untuk mendapatkan properti. .attr()
adalah untuk atribut 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>');
Ini hanya akan berfungsi jika Anda memiliki jQuery. Sebagai contoh:
<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
bukan index.php
sebagai pathname.
attr
seharusnya hanya digunakan pada objek DOM, untuk hal-hal yang dapat diatur dengan menggunakan atribut HTML.
Jika Anda memerlukan parameter hash yang ada di URL, window.location.href
mungkin merupakan pilihan yang lebih baik.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
window.location.hash
Anda akan ingin menggunakan objek bawaan JavaScript window.location
.
window.location.pathname
tidak mengambil apa pun setelah?
Cukup tambahkan fungsi ini dalam JavaScript, dan itu akan mengembalikan jalur absolut dari jalur saat ini.
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));
}
Saya harap ini berhasil untuk Anda.
var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/'));
window.location adalah objek dalam javascript. mengembalikan data berikut
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
di jquery bisa Anda gunakan
$(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
?
Ini adalah masalah yang lebih rumit daripada yang mungkin dipikirkan banyak orang. Beberapa browser mendukung objek lokasi JavaScript bawaan dan parameter / metode terkait yang dapat diakses melalui window.location
atau document.location
. Namun, rasa berbeda dari Internet Explorer (6,7) tidak mendukung metode ini dengan cara yang sama, ( window.location.href
? window.location.replace()
Tidak didukung) sehingga Anda harus mengaksesnya secara berbeda dengan menulis kode kondisional setiap saat untuk memegang Internet Explorer dengan tangan.
Jadi, jika Anda memiliki jQuery yang tersedia dan dimuat, Anda mungkin juga menggunakan jQuery (lokasi), seperti yang lain karena itu menyelesaikan masalah ini. Namun, jika Anda melakukan-untuk contoh-beberapa redirection geolokasi sisi klien melalui JavaScript (yaitu, menggunakan Google Maps API dan metode objek lokasi), maka Anda mungkin tidak ingin memuat seluruh perpustakaan jQuery dan menulis kode kondisional Anda yang memeriksa setiap versi Internet Explorer / Firefox / dll.
Internet Explorer membuat kucing coding front-end tidak senang, tetapi jQuery adalah sepiring susu.
Hanya untuk nama host, gunakan:
window.location.hostname
java-script menyediakan banyak metode untuk mengambil URL saat ini yang ditampilkan di bilah alamat browser.
URL uji:
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);
Fungsi:
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: Dengan nomor port default
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
Nama domain adalah yang Anda daftarkan dengan aturan dan prosedur pohon Sistem Nama Domain (DNS). Server DNS dari seseorang yang mengelola domain Anda dengan Alamat-IP untuk keperluan pengalamatan. Dalam hierarki server DNS, nama Root dari stackoverlfow.com adalah com.
gTLDs - com « stackoverflow (OR) in « co « google
Sistem lokal Anda harus memelihara domain yang bukan PUBLIK di File Host.
localhost.yash.com « localhsot - subdomain(
web-server
), yash.com - maindomain(
Proxy-Server
).
myLocalApplication.com 172.89.23.777
Jika parameter memiliki zaman ?date=1467708674
maka gunakan.
var epochDate = 1467708674; var date = new Date( epochDate );
Url otentikasi dengan nama pengguna: kata sandi, Jika usernaem / kata sandi berisi simbol @
seperti:
Username = `my_email@gmail`
Password = `Yash@777`
maka Anda perlu menyandikan URL @
sebagai %40
. Lihat...
http://my_email%40gmail.com:Yash%40777@www.my_site.com
encodeURI()
(vs) encodeURIComponent()
contoh
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 (-_.!~*')
*/
Ini juga akan berfungsi:
var currentURL = window.location.href;
Anda dapat login window.location dan melihat semua opsi, hanya untuk penggunaan URL:
window.location.origin
untuk seluruh jalur gunakan:
window.location.href
ada juga lokasi. _ _
.host
.hostname
.protocol
.pathname
Saya punya ini untuk menghapus variabel GET.
var loc = window.location;
var currentURL = loc.protocol + '//' + loc.host + loc.pathname;
Anda cukup mendapatkan jalur Anda menggunakan js itu sendiri, window.location
atau location
akan memberi Anda objek URL saat ini
console.log("Origin - ",location.origin);
console.log("Entire URL - ",location.href);
console.log("Path Beyond URL - ",location.pathname);
var currenturl = jQuery(location).attr('href');
Berikut adalah contoh untuk mendapatkan URL saat ini menggunakan jQuery dan 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);
});
Berikut ini adalah contoh potongan kode bermanfaat yang dapat digunakan - beberapa contoh menggunakan fungsi JavaScript standar dan tidak spesifik untuk jQuery:
Lihat 8 Cuplikan jQuery yang Berguna Untuk URL & Pertanyaan .
Gunakan window.location.href . Ini akan memberi Anda URL lengkap .
Lihat purl.js . Ini akan sangat membantu dan juga dapat digunakan, tergantung pada jQuery. Gunakan seperti ini:
$.url().param("yourparam");
Jika Anda ingin mendapatkan jalur situs root, gunakan ini:
$(location).attr('href').replace($(location).attr('pathname'),'');
.replace('#.*', '')
? Hapus bukan hanya tanda pagar tapi semuanya setelahnya juga?
Sangat umum digunakan 3 top adalah
1. window.location.hostname
2. window.location.href
3. window.location.pathname
var path = location.pathname
mengembalikan jalur URL saat ini (jQuery tidak diperlukan). Penggunaan window.location
adalah opsional.
Semua browser mendukung objek jendela Javascript. Ini mendefinisikan jendela browser.
Objek dan fungsi global menjadi bagian dari objek jendela secara otomatis.
Semua variabel global adalah properti objek jendela dan semua fungsi global adalah metodenya.
Seluruh dokumen HTML juga merupakan properti jendela.
Jadi, Anda dapat menggunakan objek window.location untuk mendapatkan semua atribut terkait 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
mana Anda menggunakan location.path
- apakah jawaban ini perlu diperbarui?
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);
Di jstl kita dapat mengakses jalur url saat ini menggunakan pageContext.request.contextPath
, Jika Anda ingin melakukan panggilan ajax,
url = "${pageContext.request.contextPath}" + "/controller/path"
Contoh: di halaman http://stackoverflow.com/questions/406192
ini akan diberikanhttp://stackoverflow.com/controller/path