কিভাবে jQuery ব্যবহার করে ইউআরএল থেকে অ্যাঙ্কর পাবেন?


184

আমার মতো ইউআরএল রয়েছে:

www.example.com/task1/1.3.html#a_1

কীভাবে আমি a_1jQuery ব্যবহার করে অ্যাঙ্কর মান পেতে এবং এটি একটি পরিবর্তনশীল হিসাবে সঞ্চয় করতে পারি?

উত্তর:


206

আপনি .indexOf()এবং এর .substring()মতো ব্যবহার করতে পারেন :

var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);

আপনি এটা ব্যবহার করে দেখুন এখানে দিতে পারেন যদি এটি একটি নাও থাকতে পারে, #এটা, একটি কি if(url.indexOf("#") != -1)ভালো চেক:

var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";

এটি যদি বর্তমান পৃষ্ঠার ইউআরএল হয়, আপনি window.location.hashএটি পেতে কেবলমাত্র এটি ব্যবহার করতে পারেন, এবং #আপনি যদি চান তবে প্রতিস্থাপন করতে পারেন।


10
দয়া করে নোট করুন: আইফ্রেমের অভ্যন্তর থেকে মূল উইন্ডোর হ্যাশ মান পেতে, window.top.location.hashপরিবর্তে আপনাকে অবশ্যই ব্যবহার করতে হবে।
পাওলো স্টেফান

1
url.split("#").pop() - ধীর কিন্তু সহজ।
ifch0o1

489

জন্য বর্তমান উইন্ডোটি , আপনি এই ব্যবহার করতে পারেন:

var hash = window.location.hash.substr(1);

প্রধান উইন্ডোর হ্যাশ মান পেতে , এটি ব্যবহার করুন:

var hash = window.top.location.hash.substr(1);

আপনার যদি কোনও URL / হ্যাশযুক্ত স্ট্রিং থাকে তবে সবচেয়ে সহজ পদ্ধতিটি হ'ল:

var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();

আপনি যদি jQuery ব্যবহার করেন তবে এটি ব্যবহার করুন:

var hash = $(location).attr('hash');

1
মার্জিত উত্তর। এমন কোনও মামলা রয়েছে যেখানে এটি কাজ করে না?
স্কিরিরাস

2
শর্টকাট সংস্করণ - var hash = window.location.hash.substr(1);কারণ জেএসের উভয় সাবস্ট্রাস্ট / সাবস্ট্রিং ফাংশন রয়েছে, সেগুলি পৃথক, তবে এই ক্ষেত্রে একই the
আর্থার কুশমান

এর পরিবর্তনের উপর নজর রাখার সর্বোত্তম উপায়টি কী ie কেউ একটি অভ্যন্তরীণ পৃষ্ঠা লিঙ্ক ক্লিক করেছেন?
মুক্তি আইকুলাস

5
@ রিডিক্ল্যাকুলাস চেষ্টা করে দেখুন: $ (উইন্ডো) .অন ('হ্যাশচেঞ্জ', ফাংশন () {$ ('এইচ 1')। পাঠ্য (লোকেশন.হ্যাশ.স্লাইস (1));});
সিলভিও দেলগাদো

71

ব্যবহার

window.location.hash

# এর বাইরে এবং সমস্ত কিছু পুনরুদ্ধার করতে


15
location.hash.slice(1)আপনি যদি চূড়ান্ত স্ট্রিংয়ে হ্যাশ ট্যাগটি না চান তবে ব্যবহার করতে ভুলবেন না!
স্যান্ডি গিফোর্ড

39

jQuery শৈলী:

$(location).attr('hash');

7
প্রতিটি জাভাস্ক্রিপ্ট সমস্যা jquery দিয়ে সমাধান করা প্রয়োজন হয় না।
ডক্সিন

22
@ডক্সিন আমি সম্মত তবে প্রশ্নটি হল "কীভাবে ইউএসএল থেকে অ্যাঙ্করটি jQuery ব্যবহার করবেন?"
ভ্যালেন্টিন ই

10

যে কোনও বৈধ URL টি পার্স করার জন্য আপনি নিম্নলিখিত "কৌশল" ব্যবহার করতে পারেন । এটি অ্যাঙ্কর উপাদানটির বিশেষ href- সম্পর্কিত সম্পত্তি, গ্রহণ করে hash

JQuery সহ

function getHashFromUrl(url){
    return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1

সরল জেএস সহ

function getHashFromUrl(url){
    var a = document.createElement("a");
    a.href = url;
    return a.hash.replace(/^#/, "");
};
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1

3

যদি আপনার কেবল একটি সরল url স্ট্রিং থাকে (এবং এর ফলে হ্যাশ বৈশিষ্ট্যটি না থাকে) আপনি একটি নিয়মিত প্রকাশও ব্যবহার করতে পারেন:

var url = "www.example.com/task1/1.3.html#a_1"  
var anchor = url.match(/#(.*)/)[1] 

1
মিলটি এর দ্বিতীয় উপাদানটি অ্যাক্সেস করার আগে ফলাফল মিলবে কিনা তা পরীক্ষা করা দরকার বা ইউআরএলের কোনও অ্যাঙ্কর না থাকলে এই কোডটি ত্রুটি করবে।
রিচার্ড গার্সাইড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.