2011-12-19 8 views
8

मैं इस समय एक जटिल AJAX एप्लिकेशन लिख रहा हूं और पूरी साइट के पास स्वच्छ URL हैं। फिलहाल PHP प्रत्येक पृष्ठ के लिए मूल लेआउट बनाता है, हालांकि जब मैं किसी लिंक पर क्लिक करता हूं तो मैं प्रत्येक पृष्ठ से दूर नेविगेट नहीं करना चाहता हूं, और मैं यूआरएल में हैश नहीं चाहता क्योंकि यह ' बाकी साइट के साथ फिट नहीं है। मुझे पता है कि इस साइट पर इससे पहले लोड बढ़ गया है और ऐसा लगता है कि यह काफी सामान्य रूप से पूछा जाता है लेकिन मैं सोच रहा था कि पता बार में यूआरएल बदलने के लिए सिर्फ एक साफ एचटीएमएल 5 तरीका है, भले ही यह तकनीकी रूप से उसी पर बने पृष्ठ।पृष्ठ से दूर नेविगेट किए बिना ब्राउज़र में यूआरएल कैसे बदलें?

उत्तर

34

आप इसे history.pushState के साथ कर सकते हैं, लेकिन केवल ब्राउज़र में इसका समर्थन कर सकते हैं। बस अपने ब्राउज़र जावास्क्रिप्ट-कंसोल में निम्न पंक्ति का प्रयास करें। The pushState() method (Mozilla Developer)

इसी प्रकार के प्रश्न में उस पर

history.pushState({},"URL Rewrite Example","https://stackoverflow.com/example") 

अधिक How do I, with JavaScript, change the URL in the browser without loading the new page?

3

दूसरों के रूप में कहा है, एचटीएमएल 5 के history.pushstate जाने का रास्ता है। कार्रवाई में देखने के लिए जिथब पर रेपो ब्राउज़ करने का प्रयास करें (https://github.com/visionmedia/express)।

समस्या आईई का एकमात्र संस्करण है जो इतिहास.pushstate का समर्थन करता है आईई 10 है, जो थोड़े बेकार है।

साइट्स के बहुत सारे हैंशबैंग # का उपयोग करते हैं! यूआरएल जैसे ट्विटर (उदा। https://twitter.com/#!/Sironfoot)। हैशबैंग एक यूआरएल पैटर्न है जो खोज इंजन द्वारा सहमत है ताकि वे अभी भी भारी अजाक्स संचालित वेबसाइट (http://code.google.com/web/ajaxcrawling/docs/specification.html पर अधिक जानकारी) को ट्रेल और इंडेक्स कर सकें, ताकि आप उस मार्ग पर जा सकें।

एकमात्र अन्य दृष्टिकोण इतिहास का उपयोग करने वाले ब्राउज़र के लिए इतिहास.pushstate का उपयोग करना है, और गैर-सहायक ब्राउज़र के लिए पूर्ण-पृष्ठ रीफ्रेश पर वापस आना है।

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

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