2012-12-02 39 views
5

में काम नहीं कर रहा है मेरे पास नीचे है।window.location.index जावास्क्रिप्ट

var myString = "http://localhost:8888/www.smart-kw.com/"; 
alert(myString.indexOf("localhost")); 

यह मैं चेतावनी देना ... लेकिन अगर मैं बदल var myString = "http://localhost:8888/www.smart-kw.com/";var myString = window.location; करने के लिए, यह काम नहीं करेगा (मैं चेतावनी नहीं मिलता है)।

var myString = window.location; 
alert(myString.indexOf("localhost")); 
+0

@MartijnPieters: ठीक है, मैं इसका ख्याल रखूंगा। –

उत्तर

22

window.location एक वस्तु, न कोई स्ट्रिंग है, और इसलिए यह एक indexOf समारोह नहीं है। (यह लोग कभी-कभी लगता है कि यह एक स्ट्रिंग है, यह देखते हुए कि window.location = "some url"; वास्तव में काम करता है, लेकिन यह एक नहीं है पूरी तरह से समझा जा सकता है।)

आप यदि चाहें तो window.location.toString(), String(window.location), या window.location.href इसके लिए एक स्ट्रिंग प्राप्त करने के लिए उपयोग कर सकते हैं, या विनिर्देशों की जांच के लिए its various properties का उपयोग करें।

  • hash:: यूआरएल जिसमें # प्रतीक सहित # प्रतीक है, इस प्रकार के हिस्से के लिंक, दिए गए उदाहरण यूआरएल http://www.example.com:80/search?q=devmo#test से। ब्राउज़र के समर्थन में हैश में बदलावों की अधिसूचना प्राप्त करने के लिए आप हैशचेंज ईवेंट सुन सकते हैं।
    उदाहरण: #test
  • host: होस्ट का नाम और पोर्ट नंबर।
    उदाहरण: www.example.com:80
  • hostname: होस्ट का नाम (पोर्ट नंबर के बिना)।
    उदाहरण: www.example.com
  • href: संपूर्ण यूआरएल।
    उदाहरण: http://www.example.com:80/search?q=devmo#test
  • pathname: पथ (मेजबान के सापेक्ष)।
    उदाहरण: /search
  • port: यूआरएल का पोर्ट नंबर।
    उदाहरण: 80
  • : यूआरएल का प्रोटोकॉल।
    उदाहरण: http:
  • search: यूआरएल का हिस्सा जो निम्नानुसार है? प्रतीक सहित,? प्रतीक।
    उदाहरण: ?q=devmo

उदाहरण के लिए, अपने उद्धृत उदाहरण के लिए, आप window.location.hostname === "localhost" जाँच कर सकते हैं।

3

जहां तक ​​मुझे पता है window.locationLocation object है।

उदाहरण के लिए, window.location.href आपको पूरा यूआरएल देगा।

var url = window.location.href; 
alert(url.indexOf("domain")); 

लेकिन इस तरह की जांच झूठी सकारात्मक को ट्रिगर करने के लिए बाध्य है। आप window.location.hostname संपत्ति का उपयोग कर बेहतर हैं जो होस्ट नाम भाग रखती है।

(window.location.href).indexOf("localhost") > -1) 

मैं वास्तव में सशर्त, के रूप में अपनी परियोजनाओं के लिए इसका उपयोग और यह सिर्फ ठीक काम करता है:

var hostname = window.location.hostname; 
alert(hostname === "my.domain.com"); 
1

मैं इस काम करने के लिए एक रास्ता मिल गया।

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

  • कोई संबंधित समस्या नहीं^_^