কিভাবে 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.