জাভাস্ক্রিপ্টে কোনও পরামিতি ছাড়াই কীভাবে ইউআরএল পাবেন?


176

যদি আমি ব্যবহার করি:

alert(window.location.href);

আমি কোয়েরি স্ট্রিং সহ সমস্ত কিছু পাই। মূল ইউআরএল অংশটি পাওয়ার জন্য কি কোনও উপায় আছে, উদাহরণস্বরূপ:

http://mysite.com/somedir/somefile/

পরিবর্তে

http://mysite.com/somedir/somefile/?foo=bar&loo=goo

উত্তর:


283

এটি সম্ভব, তবে আপনাকে এটিকে locationঅবজেক্ট থেকে নিজেই তৈরি করতে হবে :

location.protocol + '//' + location.host + location.pathname

14
মনে রাখবেন যে আপনাকে সমস্ত আধুনিক ব্রাউজার (আই 6 সহ) স্বয়ংক্রিয়ভাবে বর্তমান প্রোটোকলটির উত্তরাধিকার হিসাবে উত্তোলন করবে। প্রোটোকল সরবরাহ করার দরকার নেই। যেমন:'//' + location.host + location.pathname
জনি রাইভেস

10
@ জনিরিভস আপনি যদি বর্তমান নথিতে এটি ব্যবহার করেন তবে এটি সত্য: ভাল পয়েন্ট। এমন কিছু অনুষ্ঠান রয়েছে যখন এটি প্রয়োজনীয় হতে পারে, যেমন ইউআরএলকে সরল পাঠ্য হিসাবে আউটপুট করা।
একাকী দিন

1
@ একাকী দিন আপনার প্রতিক্রিয়া থেকে বোঝা যায় এটি একমাত্র উপায়, যা তা নয়।
ওডম্যান

5
এটি পোর্ট হারিয়েছে, সুতরাং এটি পৃষ্ঠার জন্য ভুল ফলাফলটি ফিরে আসবেhttp://www.example.com:8080/asdf.html?foo=bar
izogfif

3
আপনি এর সাথে কয়েকটি অক্ষর সংরক্ষণ করতে পারেন location.origin, যা আমি বিশ্বাস করি @ ইওলোগফিফের উদ্বেগকেও সম্বোধন করে।
কোডার

171

প্রতিটি উত্তর বরং গুলিয়ে যায়। এখানে:

var url = window.location.href.split('?')[0];

এমনকি যদি একটি? উপস্থিত নেই, এটি এখনও প্রথম যুক্তিটি ফিরিয়ে দেবে, এটি হবে আপনার সম্পূর্ণ URL, বিয়োগ কোয়েরি স্ট্রিং।

এটি প্রোটোকল-অজোনস্টিক, যার অর্থ আপনি এটি এফটিপি, আইটিউনস.ইটিসি ইত্যাদির জন্যও ব্যবহার করতে পারেন।


39
যদি আপনাকে অ্যাঙ্করগুলি সরিয়ে ফেলতে হয়window.location.href.split(/[?#]/)[0];
বাহাত্তিন উঙ্গর্মাস

প্রকৃতপক্ষে প্রতিটি উত্তর বরং গুলিয়ে গেছে
মেহমেট

আপনার কাছে যদি সহজ পদ্ধতির থাকে তবে সমস্ত কানকে ইম্মেট করুন :)
ওডম্যান

1
@ অডম্যান, আমি তখন কী ভাবছিলাম তা আমি অবশ্যই মনে করি না তবে আমি অনুমান করি এটি একটি ইতিবাচক বক্তব্য হতে পারে :))
মেহমেট

কেন (যদি তা হয়) এই উত্তরটি গ্রহণযোগ্য হিসাবে চিহ্নিত হওয়ার চেয়ে ভাল কেন ??
বিশাল - জাভা - সিকিউ

16

ব্যবহার indexOf

var url = "http://mysite.com/somedir/somefile/?aa";

if (url.indexOf("?")>-1){
url = url.substr(0,url.indexOf("?"));
}

5
var url = "tp://mysite.com/somedir/somefile/?foo=bar&loo=goo"    

url.substring(0,url.indexOf("?"));

3
এই অনুমান, যে পরামিতি সংজ্ঞায়িত করা হয়। আরও অনেক ভালurl.split('?')[0]
অ্যাকটাইল

5

আপনি একটি নিয়মিত অভিব্যক্তি ব্যবহার করতে পারেন: window.location.href.match(/^[^\#\?]+/)[0]


5

আপনি কনক্যাট করতে পারেন originএবং pathnameযদি সেখানে কোনও পোর্ট উপস্থাপন করা থাকে তবে এটিও example.com:80অন্তর্ভুক্ত করা হবে।

location.origin + location.pathname

2

আপনি যদি ডকুমেন্টেশনের দিকে লক্ষ্য করেন তবে আপনি কেবলমাত্র সেই বৈশিষ্ট্যটি নিতে পারেন যা আপনি windowঅবজেক্ট থেকে আগ্রহী ie

protocol + '//' + hostname + pathname
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.