2010-01-30 6 views
10

ब्राउज़र में कुकीज़ अक्षम होने पर ही संदेश कैसे दिखाया जाए? जैसे http://stackoverflow.com दिखाएं कि जावास्क्रिप्ट अक्षम है या नहीं।ब्राउज़र में कुकीज़ अक्षम होने पर ही संदेश कैसे दिखाया जाए?

+0

http://stackoverflow.com/questions/531393/how-to-detect-if-cookies-are-disabled-is-it- संभावित – lexu

उत्तर

11

इस आजमाएं:

function are_cookies_enabled() 
{ 
    var cookieEnabled = (navigator.cookieEnabled) ? true : false; 

    if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) 
    { 
     document.cookie="testcookie"; 
     cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false; 
    } 
    return (cookieEnabled); 
} 
+0

यह प्रत्येक ब्राउज़र पर काम करेगा? –

+0

यह, दूसरा चेक (कुकी बनाने का प्रयास करें और देखें कि क्या आप जिस मान को सेट करने का प्रयास कर रहे हैं उसे पुनर्प्राप्त कर सकते हैं) प्रत्येक ब्राउजर के लिए है। पहली जांच सिर्फ एक तेज जांच है यदि वह संपत्ति डोम में संग्रहीत की जाती है। (आधुनिक ब्राउज़रों में समर्थित) –

+0

navigator.cookieEnabled हमेशा IE11 के लिए सच देता है, क्या ऐसा करने का कोई और तरीका है ?? मैं कुछ समय के लिए यह कोशिश कर रहा हूं लेकिन किसी भी समाधान को खोजने में सक्षम नहीं – Developer

1

stackoverflow.com <noscript> टैग का उपयोग करता है एक विशेष पृष्ठ को दिखाने के लिए यदि जावास्क्रिप्ट अक्षम है। भाषा में निर्मित कुकीज़ के बराबर कुछ भी नहीं है। आपकी सबसे अच्छी शर्त शायद यह पता लगाने के लिए कि कुकीज़ अक्षम हैं या नहीं, this thread पर एक नज़र डालें।

-1

सबसे पहले आप यह देखने के लिए परीक्षण करते हैं कि कुकीज़ सक्षम हैं या नहीं। यदि वे हैं, तो आप एक संदेश आउटपुट करते हैं। आप सीएसएस का उपयोग करके संदेश छिपा सकते हैं और फिर परीक्षण के बाद अनदेखा कर सकते हैं, लेकिन फिर उपयोगकर्ता इसे देख पाएंगे यदि वे सीएसएस का उपयोग नहीं करते हैं। आपके पास तत्व हो सकता है लेकिन अंदर कुछ भी नहीं, ताकि यह प्रदर्शित न हो और फिर उपयोगकर्ता आंतरिक HTML परीक्षण के बाद संदेश दर्ज कर सके।

मान लिया जाये कि कुकीज़ पहले से ही सेट किया गया है (या होना करने का प्रयास किया) का उपयोग करें:

var cookieMessage = "You don't have cookies turned on!"; 
    var cookieHTML = document.getElementById("cookiesOff"); 
    function cookieMessage() { 
    if(document.cookie.length == 0) { 
      cookieHTML.innerHTML(cookieMessage); 
      } 
    } 

और फिर एक h3 या pcookiesOff का एक आईडी के साथ की तरह एक HTML तत्व है।

13

, एक जावास्क्रिप्ट navigator.cookieEnabled इंटरफेस होने के लिए वहाँ थे, लेकिन आज ब्राउज़र कुकी नियंत्रण की एक ज्यादा व्यापक रेंज बस की तुलना में 'सक्षम'/'अक्षम' सत्र/लगातार विकल्प, प्रथम-पक्ष/तीसरे पक्ष के शामिल है, है साइट-विशिष्ट सेटिंग्स और पी 3 पी। तो इस संपत्ति को सूँघना अब थोड़ा उपयोग नहीं है।

नहीं, यह पता लगाने का एकमात्र विश्वसनीय तरीका है कि आप कुकी सेट कर सकते हैं या नहीं, और यह देखने के लिए कि यह अभी भी है या नहीं। एक और झुर्रियां यह है कि जब कई ब्राउज़र एक सत्र कुकी को एक सत्र कुकी में डाउनग्रेड करेंगे, जब उपयोगकर्ता के गोपनीयता नियंत्रण उन्हें अनुमति नहीं देते हैं, तो IE नहीं होगा।

यदि आप अक्षम होने पर IE में लगातार कुकी सेट करने का प्रयास करते हैं, तो कुकी को केवल मंजिल पर फेंक दिया जाएगा। यदि आप एक साधारण सत्र-कुकी चेकर का उपयोग करते हैं, तो कुकीज सक्षम हैं, और फिर एक सतत कुकी सेट करने का प्रयास करें, यह आपको बाहर निकाल सकता है। और आप एक सत्र कुकी और एक सतत कुकी के रूप में सेट करने की कोशिश करने से दूर नहीं जा सकते हैं, क्योंकि जब आप निरंतर कुकी अक्षम के साथ आईई में लगातार कुकी सेट करते हैं, तो यह भी को उसी नाम की मौजूदा सत्र कुकी हटा देगा । अरे आईई!

तो तुम एक लगातार कुकी सेट लेकिन सत्र जहां लगातार उपलब्ध नहीं है के साथ क्या करने की जरूरत है, तो आप पता लगाने के लिए आप क्या करने की अनुमति हो क्या यह पहली उपयोग करने के लिए होगा:

// Find out what cookies are supported. Returns: 
// null - no cookies 
// false - only session cookies are allowed 
// true - session cookies and persistent cookies are allowed 
// (though the persistent cookies might not actually be persistent, if the user has set 
// them to expire on browser exit) 
// 
function getCookieSupport() { 
    var persist= true; 
    do { 
     var c= 'gCStest='+Math.floor(Math.random()*100000000); 
     document.cookie= persist? c+';expires=Tue, 01-Jan-2030 00:00:00 GMT' : c; 
     if (document.cookie.indexOf(c)!==-1) { 
      document.cookie= c+';expires=Sat, 01-Jan-2000 00:00:00 GMT'; 
      return persist; 
     } 
    } while (!(persist= !persist)); 
    return null; 
} 
+0

किसी की मदद कर सकता है: मैंने इस फ़ंक्शन का उपयोग केवल उन कुकीज़ पर एक jquery # संवाद-संदेश (एक बार) दिखाने के लिए किया है जो लगातार कुकीज़ का समर्थन करते हैं। समर्थन के लिए जांच करने के बाद मैं एक दस्तावेज़ करता हूं। संवाद div का लिखना, फिर एक कुकी सेट करें जो php के लिए दिखता है ताकि संवाद पॉपअप बार-बार लोगों को परेशान न करे। –

+0

किसी के पास 2010 से नेविगेटर.cookieEnabled के संभावित सुधार के लिए स्रोत है? – Bombinosh

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

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