2012-07-28 25 views
5

मेरे पास एक वेबपृष्ठ है जहां उपयोगकर्ता को AJAX के माध्यम से पृष्ठ को पुनः लोड किए बिना नियम और शर्तों को प्रदर्शित करने की संभावना है। वह, खुद में, कोई समस्या नहीं है, हालांकि, मैं इतिहास की स्थिति को धक्का देने की भी कोशिश कर रहा हूं।आईई इतिहास पुश राज्य

आईई को छोड़कर, अधिकांश ब्राउज़रों में यह ठीक काम करता है। कुछ अतुलनीय कारणों के लिए, सामग्री AJAX के माध्यम से लोड की जाती है, लेकिन यह भी, पिछले पृष्ठ के साथ एक नया टैब खोला गया है। मैं इसे कैसे ठीक करूं?

आप इस वेबपृष्ठ (http://galaxy-battle.de) पर उदाहरण देख सकते हैं, "जुड़ें" -box में "टी & सीएस" पर क्लिक करने का प्रयास करें।

+0

क्या आप हमें वह कोड दिखा सकते हैं जो कि jsfiddle में करता है, इसलिए एक त्रुटि को खोजना और इसे डीबग करना आसान है? –

+0

ओह, क्षमा करें, बस इसे पढ़ें। थोड़ा सा बनाना होगा। – arik

+0

क्षमा करें, लेकिन मुझे jsfiddle पर काम करने के लिए pushState कमांड नहीं मिल सका, वे इसे अवरुद्ध कर रहे हैं। – arik

उत्तर

10

आईई 9 और doesn't support pushState से नीचे। निम्न पंक्ति

window.history.pushState (शून्य, शून्य, पथफुलपेज) को कॉल करते समय आपके पास अपवाद है;

SCRIPT438: वस्तु संपत्ति या विधि 'pushState' TERMS_AND_CONDITIONS, लाइन 62 चरित्र 21

आप शायद कुछ Emulate/polyfill history.pushstate() in IE

2

पुरानी है लेकिन अभी भी वर्तमान सवाल पर चर्चा की समाधान पर देख दिलचस्प हो सकता है का समर्थन नहीं करता । मैं बस कहना चाहता हूं कि आईई पर पुशस्टेट अनुकरण करने की कोशिश करने के लिए की सिफारिश नहीं करूंगा।

इसके बजाय इस बात का

, आप उस सुविधा का पता लगाने का उपयोग कर सकते हैं:

  1. अगर history.pushState रिक्त नहीं है (ब्राउज़र pushState का समर्थन करता है), तो आप इसका इस्तेमाल करते हैं और निफ्टी जावास्क्रिप्ट

  2. अगर history.pushState के साथ अपनी सामग्री लोड रिक्त है (ब्राउज़र pushState का समर्थन नहीं करता), आप यूआरएल को बदलने/लिंक का पालन करें और बनाने के एक पूरे पृष्ठ परिवर्तन

बेशक, इसका मतलब है आईई < = 9 उपयोगकर्ताओं के पास अन्य उपयोगकर्ताओं के पास सभी शानदार एनिमेशन नहीं होंगे। लेकिन सवाल मैं पूछना चाहता हूं: क्या आप # वाली अपनी वेबसाइट के नेट लिंक पर देखना चाहते हैं?

उपयोगकर्ता सोच सकते हैं कि आपका ऐप उपयोगी है और वेब पर इसके लिंक पेस्ट कर सकते हैं। यह अच्छा है, क्योंकि यह आपको कुछ Google रस लाता है। अब, यदि वह उपयोगकर्ता आईई का उपयोग करता है और आप history.js का उपयोग करते हैं, तो उपयोगकर्ता हैश युक्त एक लिंक पेस्ट करेगा।

यह आपके ऐप के सार्वजनिक पृष्ठों के उचित अनुक्रमण को हरा देगा, और बदसूरत लगेगा। मेरी व्यक्तिगत राय यह है कि आईई उपयोगकर्ताओं के लिए जेएस एनीमेशन या लाइटबॉक्स होने से उन व्यापारों के लायक नहीं हैं।

+1

दुर्भाग्यवश व्यावसायिक आवश्यकताएं हमेशा डेवलपर के प्रत्यक्ष नियंत्रण में नहीं होती हैं। – jaydel