سؤال

أنا أستخدم مسج.كيف يمكنني الحصول على مسار عنوان 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 enter image description here


عنوان 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 للصفحة الحالية باستخدام JavaScript/مسج.

  • document.URL

  • $("*").context.baseURI

  • location.href

إذا كان هناك شخص يريد لسلسلة 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top