2010-06-30 15 views
49

मैं जावास्क्रिप्ट में फ़ाइल की वर्तमान निर्देशिका प्राप्त करने का प्रयास कर रहा हूं, इसलिए मैं अपनी साइट के प्रत्येक अनुभाग के लिए एक अलग jquery फ़ंक्शन ट्रिगर करने के लिए इसका उपयोग कर सकता हूं।मैं जावास्क्रिप्ट में वर्तमान निर्देशिका नाम कैसे प्राप्त कर सकता हूं?

if (current_directory) = "example" { 
var activeicon = ".icon_one span"; 
}; 
elseif (current_directory) = "example2" { 
var activeicon = ".icon_two span"; 
}; 
else { 
var activeicon = ".icon_default span"; 
}; 

$(activeicon).show(); 
... 

कोई विचार?

उत्तर

19

आप उपयोग कर सकते हैं window.location.pathname.split('/');

कि/के बीच आइटम के सभी के साथ एक सरणी का उत्पादन करेगा

8

इस पर वास्तविक पथ के लिए काम करेंगे फ़ाइल सिस्टम अगर आप यूआरएल स्ट्रिंग नहीं बोल रहे हैं।

var path = document.location.pathname; 
var directory = path.substring(path.indexOf('/'), path.lastIndexOf('/')); 
+0

वर पथ = document.location.pathname; var dir = path.substring (path.indexOf ('/'), path.lastIndexOf ('/')); //localhost/sub/sub/sub/index.php/ali-mm-d#tab2 (अन्य अजीब बातों के अलावा) इस प्रकार इस दृष्टिकोण एक निर्देशिका नहीं पैदा करता है,: – gtzinos

65

window.location.pathname आपको निर्देशिका, साथ ही पृष्ठ का नाम भी मिलेगा। इसके बाद आप निर्देशिका पाने के लिए .substring() इस्तेमाल कर सकते हैं:

var loc = window.location.pathname; 
var dir = loc.substring(0, loc.lastIndexOf('/')); 

आशा इस मदद करता है!

+0

मेरी जूमला साइट का उत्पादन यूआरएल इस तरह की: http बल्कि: http: //localhost/sub/sub/sub/index.php – dsdsdsdsd

+0

यह मेरे लिए समाधान था, धन्यवाद। – DeyaEldeen

9

दोनों के लिए/और \:

window.location.pathname.replace(/[^\\\/]*$/, ''); 

स्लैश बिना लौटने के लिए, कार्य करें:

window.location.pathname.replace(/[\\\/][^\\\/]*$/, ''); 
+0

यह आईई <9 में काम करता है, जबकि उत्तर .lastIndex का उपयोग करते हुए जवाब नहीं करते हैं। इस कारण से +1। – thunderblaster

2

आप पूर्ण URL जैसे चाहते हैं http://website/basedirectory/workingdirectory/ उपयोग:

var location = window.location.href; 
var directoryPath = location.substring(0, location.lastIndexOf("/")+1); 

आप जैसे डोमेन के बिना स्थानीय पथ चाहते हैं /basedirectory/workingdirectory/ उपयोग:

var location = window.location.pathname; 
var directoryPath = location.substring(0, location.lastIndexOf("/")+1); 

मामले में आप अंत में स्लेश जरूरत नहीं है, location.lastIndexOf("/")+1 के बाद +1 को हटा दें।

यदि आप केवल वर्तमान निर्देशिका नाम चाहते हैं, जहां स्क्रिप्ट चल रही है, उदा। workingdirectory उपयोग:

var location = window.location.pathname; 
var path = location.substring(0, location.lastIndexOf("/")); 
var directoryName = path.substring(path.lastIndexOf("/")+1); 
+0

स्थान Google क्रोम को पृष्ठ को फिर से लोड करने का कारण बनता है, परिवर्तनीय नाम को स्थान 1 जैसे किसी अन्य स्थान पर बदलें – mparkuk

2

यह एक लाइनर काम करता है:

var currentDirectory = window.location.pathname.split('/').slice(0, -1).join('/') 
संबंधित मुद्दे

 संबंधित मुद्दे