2011-12-08 11 views
6

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

+0

आप हमें अपने कोड दिखा सकते हैं? – JamesHalsall

+0

हाँ, मैं बस जावास्क्रिप्ट में विंडो। स्थान स्थापित कर रहा था। सफारी बाहर हैश टैग रीडायरेक्ट का समर्थन नहीं करता है, जो कि बहुत परेशान है क्योंकि iPhones और iPads सभी सफारी हैं। तो कुछ js इस window.location = "http://www.example.com/#page2" आपको साइट पर ले जाएंगे, लेकिन यह हैश टैग की तरह पेज 2 पर नहीं जायेगा। रीडायरेक्ट करते समय सफारी हैश टैग स्ट्रिप्स करता है। –

+0

आपने कहाँ पढ़ा * यह कुछ सफारी करता है *? – alex

उत्तर

3

हमें वास्तव में हमारे ग्राहकों से बहुत ही समान बग रिपोर्ट मिली है।

हमारे लिए परिदृश्य में #quicklogin/abc123 के रूप में एक हैशटैग शामिल है और सफारी में साइट को देखने पर ही दिखाई दिया। यह प्रारंभिक यूआरएल का हिस्सा था जिसे क्लाइंट लोड करेगा और यह उन्हें वैकल्पिक लॉगिन स्क्रीन के साथ प्रस्तुत करेगा। सफारी में सीधे यूआरएल पर जाने पर, ब्राउज़र ने पूरे टैग को हटा दिया और इसे अनदेखा कर दिया।

जब हमने इसे #quicklogin/test (या किसी अन्य हैश में केवल अल्फा वर्ण वाले) में बदल दिया, तो यह ठीक काम करता था। यह साइट लोड करते समय ठीक काम करता है और फिर दो अलग-अलग चरणों में हैश टैग मैन्युअल रूप से लागू करता है।

तो हमारा निष्कर्ष यह है कि सफारी में संख्यात्मक मूल्य वाले हैशटैग के साथ कुछ गड़बड़ हो सकती है।

+3

हमने इसका थोड़ा परीक्षण किया, और * केवल * लोअरकेस अक्षरों का काम ('a-z')। कम से कम '=', '_' और' Z' के परिणामस्वरूप सफारी पूरे टुकड़े को हटा रहा था। – Timmmm

3

आपको या तो जावास्क्रिप्ट के साथ रीडायरेक्ट करके ऐसा करना है (क्योंकि जावास्क्रिप्ट हैश मान पढ़ सकता है) या उपयोगकर्ता एजेंट के आधार पर सशर्त रूप से विभिन्न HTML को लौटकर।

ब्राउज़र को 302 के माध्यम से हैश खंड को संरक्षित करना है, लेकिन अक्सर नहीं (नीचे 3 साल की वेबकिट बग देखें) और अन्यथा हैश टुकड़े सर्वर पर नहीं भेजे जाते हैं, इसलिए उन्हें मैन्युअल रूप से निपटाया नहीं जा सकता है।

https://bugs.webkit.org/show_bug.cgi?id=24175

4

आप बच चाहिए '#' प्रतीक और सब कुछ ठीक हो जाएगा

+0

यह किसी अन्य प्रश्न पर पोस्ट की गई दूसरी प्रति की तुलना में अधिक समझ में नहीं आता है। –

+2

यह वास्तव में काम करता है ... "# 23" के साथ "# 23" को एक आकर्षण की तरह काम करता है! धन्यवाद! – user1265146

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