2009-11-03 9 views
7

यदि उपयोगकर्ता जावास्क्रिप्ट अक्षम है तो मैं उपयोगकर्ता को किसी निश्चित पृष्ठ पर रीडायरेक्ट करना चाहता हूं।<noscript> पुनर्निर्देशन

<noscript><?php url::redirect('controller/method'); ?></noscript> 
// url::redirect is much like the location header 
कोई लाभ नहीं हुआ

...

मैं यह करने के लिए कैसे करते हैं: मैं इस कोड की कोशिश की?

+0

गैर-जेएस क्लाइंट से निपटने के लिए यह एक बहुत ही खराब दृष्टिकोण है: http://icant.co.uk/articles/pragmatic-progressive-enhancement/ – Quentin

+0

[नो-जावास्क्रिप्ट डिटेक्शन स्क्रिप्ट + रीडायरेक्ट] का संभावित डुप्लिकेट (http : //stackoverflow.com/questions/9895012/no-javascript-detection-script-redirect) – BalusC

उत्तर

2

फिर आप मेटा रिफ़्रेश टैग का उपयोग नहीं कर सकते हैं जावास्क्रिप्ट का उपयोग कर, क्योंकि ब्राउज़र मेटा रिफ़्रेश टैग पढ़ने के बाद रीडायरेक्ट करने के लिए सेट कर दिया जाता इसे हटाने और जे एस यह हेरफेर करने के लिए बहुत देर हो चुकी है।

एक ही तरीका है जब कोई जावास्क्रिप्ट या तो क्या डैनियल सुझाव दिया करने के लिए, या एक लिंक दिखाने के लिए है:

<noscript> 
<a href="">Click here to continue</a> 
</noscript> 

या आप शान से विफल करने की कोशिश कर सकते हैं: Do you plan for javascript being off?

+0

आपको '' टैग में हेरफेर करने के लिए जेएस का उपयोग करने की आवश्यकता नहीं है ... अगर

5

जावास्क्रिप्ट अक्षम होने पर आधारित रीडायरेक्ट करने का कोई तरीका नहीं है। विपरीत क्यों नहीं करें - जावास्क्रिप्ट सक्षम होने पर रीडायरेक्ट करें?

<script> 
    window.location = "..."; 
</script> 
+0

मैं किसी पृष्ठ को जावास्क्रिप्ट के बिना देखने से रोकना चाहता हूं ... ऐसा करने के तरीके पर कोई विचार? – yretuta

+1

आप AJAX के साथ पृष्ठ सामग्री लोड कर सकते हैं। प्रश्न: आप ऐसा क्यों करना चाहते हैं? –

+0

क्योंकि पृष्ठ जावास्क्रिप्ट-निर्भर है, डेटाबेस – yretuta

19

के बाद से हेडर पहले ही भेजे जा चुके हैं, तो आप मानक HTML मार्कअप का उपयोग करना होगा:

<noscript> 
    <meta http-equiv="refresh" content="0;url=noscript.html"> 
</noscript> 

दोनों Firefox और IE अच्छी तरह से काम करने लगता है पर यह कोशिश कर रहा है ... जावास्क्रिप्ट सक्रिय के साथ, <meta> टैग को अनदेखा किया गया है। जब यह अक्षम हो जाता है, तो ब्राउज़र noscript.html पर रीडायरेक्ट करता है।

+0

यह सभी समाधान पकड़ नहीं है। –

+2

क्या आप और समझा सकते हैं? – jheddings

+0

हालांकि यह काम करता है, वैधकर्ता इससे नफरत करता है। नोस्क्रिप्ट सिर तत्व में प्रकट नहीं हो सकता है, मेटा शरीर तत्व में प्रकट नहीं हो सकता है। मेटा नोस्क्रिप्ट तत्व में प्रकट नहीं हो सकता है। एक्सएचटीएमएल 1.0 और एचटीएमएल 4.0। – mauris

0

के रूप में इस जोड़े आपके शरीर में पहला तत्व, शैली यह सूट करने के लिए है, और शायद एक नोस्क्रिप्ट पृष्ठ पर इसके अंदर एक लिंक प्रदान करते हैं:

<div onload="return false;"> 
    <!-- PAGE CONTENTS --> 
</div><noscript>JAVASCRIPT IS REQUIRED TO VIEW THIS PAGE</noscript> 

मैं इस का एक और अधिक वर्बोज़ विधि का उपयोग करें (कि basicall y इसे एक मोडल संवाद और सभी सुंदर के रूप में दिखाई देता है) उन पृष्ठों पर जहां क्लाइंट मुझे अधिक अनुकूलनीय साधनों का उपयोग करने की अनुमति नहीं देता है। मैंने आईई 6 + और बड़ी सफलता के साथ अन्य सभी प्रमुख ब्राउज़रों में परीक्षण किया है।

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