الحصول على عنوان URL الحالي باستخدام jQuery؟
-
03-07-2019 - |
سؤال
أنا أستخدم مسج.كيف يمكنني الحصول على مسار عنوان 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)
نصائح أخرى
في أسلوب مسج النقي:
$(location).attr('href');
ويحتوي الكائن موقع أيضا خصائص أخرى، مثل المضيف، التجزئة، والبروتوكول، ومسار.
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>
إذا كنت في حاجة إلى المعلمات التجزئة الحالية في URL، قد يكون window.location.href
خيارا أفضل.
window.location.pathname
=> /search
window.location.href
=> www.website.com/search#race_type=1
وأنت تريد استخدام المدمج في window.location
كائن جافا سكريبت .
وأضيف هذه الوظيفة في جافا سكريبت، وسيعود المسار المطلق من المسار الحالي.
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));
}
وآمل أن يعمل لديك.
وwindow.location هو كائن في جافا سكريبت. تقوم بإرجاع البيانات التالية
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
وفي مسج يمكنك استخدام
$(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
وهذه هي قضية أكثر تعقيدا من كثير قد يتصور البعض. عدة متصفحات دعم المدمج في الأجسام موقع جافا سكريبت والمعلمات المرتبطة بها / طرق الوصول إليها من خلال window.location
أو document.location
. ومع ذلك، نكهات مختلفة من إنترنت إكسبلورر (6،7) لا تعتمد هذه الأساليب في نفس الطريق، و(window.location.href
؟ window.location.replace()
غير معتمد) حتى يكون لديك للوصول إليها بشكل مختلف من خلال كتابة كود المشروط في كل وقت لقبضة اليد إنترنت إكسبلورر .
وهكذا، إذا كان لديك مسج المتاحة، وتحميلها، قد تستخدم كذلك مسج (الموقع)، كما ذكر آخرون لأنه يحل هذه القضايا. ولكن، إذا كنت تفعل لمثال، بعض التوجيه تحديد الموقع الجغرافي من جانب العميل عن طريق جافا سكريبت (وهذا هو، وذلك باستخدام أساليب API والكائن موقع خرائط جوجل)، ثم قد لا تحتاج إلى تحميل مكتبة مسج بأكملها وكتابة التعليمات البرمجية مشروط بك أن الشيكات كل إصدار من Internet Explorer / فايرفوكس / الخ.
وإنترنت إكسبلورر يجعل الأمامية الترميز القط سعيدة، ولكن مسج هو لوحة من الحليب.
لاسم المضيف فقط، الاستخدام:
window.location.hostname
وهذا سيعمل أيضا:
var currentURL = window.location.href;
يوفر 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();
}
- بروتوكول " متصفحات الانترنت استخدم بروتوكول الإنترنت باتباع بعض قواعد الاتصال بين تطبيقات WebHosted وعميل الويب (المتصفح).(http = 80, ، https (SSL) = 443, ، بروتوكول نقل الملفات = 21، الخ.)
السابق:مع أرقام المنافذ الافتراضية
<protocol>//<hostname>:<port>/<pathname><search><hash>
https://en.wikipedia.org:443/wiki/Pretty_Good_Privacy
http://stackoverflow.com:80/
- (//) « المضيف هو الاسم الذي يطلق على نقطة النهاية (الجهاز الذي يعيش عليه المورد) على الإنترنت.www.stackoverflow.com - DNS عنوان IP للمضيف المحلي للتطبيق (OR): 8080 - المضيف المحلي
أسماء النطاقات هي التي تقوم بتسجيلها وفقًا لقواعد وإجراءات شجرة نظام أسماء النطاقات (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 للمصادقة باستخدام اسم المستخدم: كلمة المرور، إذا كان اسم المستخدم/كلمة المرور تحتوي على الرمز @
يحب:
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 (-_.!~*')
*/
ويمكنك تسجيل 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;
ويمكنك ببساطة الحصول على مسار باستخدام شبيبة نفسه، سوف 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 الإطار الأصل من ضمن iframe:
$(window.parent.location).attr('href');
ملحوظة: يعمل فقط على نفس المجال
وهنا مثال للحصول على URL الحالي باستخدام مسج وجافا سكريبت:
$(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);
});
وفيما يلي أمثلة من التعليمات البرمجية المتكررة المفيدة التي يمكن استخدامها التالية - بعض الأمثلة استخدام وظائف جافا سكريبت القياسية وليست محددة لمسج:
وانظر <م> <وأ href = "http://www.designchemical.com/blog/index.php/jquery/8-useful-jquery-snippets-for-urls-querystrings/" يختلط = "noreferrer" > 8 مفيدة مسج القصاصات لURL لوQuerystrings م>.
يستخدم window.location.href.هذا سوف يعطيك كاملة عنوان URL.
window.location سوف أعطيك الحالي عنوان URL, ، ويمكنك أن تستخرج منه ما تريد..
إذا كنت ترغب في الحصول على مسار الموقع الجذر، استخدم هذا:
$(location).attr('href').replace($(location).attr('pathname'),'');
purl.js . وهذا سوف يساعد حقا، ويمكن أن تستخدم أيضا، اعتمادا على مسج. استخدام مثل هذا:
$.url().param("yourparam");
وvar path = location.pathname
إرجاع مسار URL الحالي (ليست هناك حاجة مسج). استخدام window.location
اختياري.
وعادة جدا المستخدمة أعلى 3 منها هي
1. window.location.hostname
2. window.location.href
3. window.location.pathname
تدعم كافة المتصفحات كائن نافذة Javascript.فهو يحدد نافذة المتصفح.
تصبح الكائنات والوظائف العامة جزءًا من كائن النافذة تلقائيًا.
جميع المتغيرات العامة هي خصائص كائنات النافذة وجميع الوظائف العامة هي أساليبها.
يعد مستند HTML بأكمله خاصية نافذة أيضًا.
لذلك يمكنك استخدام كائن window.location للحصول على جميع السمات المتعلقة بعنوان URL.
جافا سكريبت
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
مسج
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>
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 يمكننا الوصول مسار رابط الحالي باستخدام pageContext.request.contextPath
، إذا كنت تريد أن تفعل مكالمة اياكس،
url = "${pageContext.request.contextPath}" + "/controller/path"
مثال: في http://stackoverflow.com/questions/406192
الصفحة هذا سيعطي http://stackoverflow.com/controller/path