2012-07-27 18 views

उत्तर

6

पुराने इंटरनेट एक्सप्लोरर का पता लगाने के लिए यह एक हैक है। -[1,] आधुनिक ब्राउज़र में -1 है (false! के साथ) लेकिन पुरानी आईई (true अस्वीकृत) में NaN)। सही परिणाम लौटने वाला पहला संस्करण आईई 9 है।

+0

दरअसल - ['document.execCommand (" BackgroundImageCache ", झूठी, सत्य)'] (https://encrypted.google.com/search?q=BackgroundImageCache) को आईई संगतता हैक के रूप में व्यापक रूप से उपयोग किया जाता है। – apsillers

+0

मेरे लिए, '! - [1,]' क्रोम में 'झूठी' पैदा करता है लेकिन आईई 9 में भी 'सत्य'। –

+0

@ डेविड हेडलंड मुझे लगता है कि आपके पास क्विर्क मोड में पृष्ठ पर कुछ संगतता मोड है या प्रस्तुत करना है। आईई 9 में बहुत अच्छा Ecmascript समर्थन है और (और मेरे लिए करता है) क्रोम के समान परिणाम लौटाता है। – duri

4

यह सटीक कोड कभी भी false के अलावा कुछ भी नहीं देगा, इसलिए यह दर्ज के रूप में बकवास है। मुझे लगता है कि यह आउटपुट प्रदान किया जाता है और कुछ सर्वरसाइड चर के आधार पर, यह कभी-कभी कुछ अलग हो सकता है।

यह देखकर कि यह window.XMLHttpRequest का उपयोग करता है, मुझे एहसास है कि यह ब्राउजर चेक का कुछ खराब रूप भी हो सकता है। [1,] एक सरणी बनाता है, लेकिन पिछली कॉमा क्रोम और इंटरनेट एक्सप्लोरर में अलग-अलग सरणी का इलाज करेगी। क्रोम इसे केवल एक नंबर की सरणी के रूप में पहचाना जाएगा, जिसे स्पष्ट रूप से एक संख्या में डाला जा सकता है, जबकि आईई इसे दो वस्तुओं वाली एक सरणी मानी जाएगी, जिसे किसी संख्या में नहीं डाला जा सकता है।

-[1,0] सभी ब्राउज़रों में NaN उपज करेगा। -[1] सभी ब्राउज़रों में -1 उपज करेगा। इसलिए -[1,] आईई में NaN उत्पन्न करेगा (और इसलिए कोड निष्पादित करेगा), और -1 अन्य ब्राउज़रों में (और कोड निष्पादित नहीं करेगा)।

यह एक भयानक हैक है। इसका इस्तेमाल न करें।

यदि आप यह जानना चाहते हैं कि window.XMLHttpRequest काम करेगा, तो उस विशेष रूप से परीक्षण करें, और किसी और चीज़ के लिए नहीं।

+0

मैं देखता हूं। धन्यवाद। मैं इस हैक के लिए नया हूँ। – acjialiren

0

यह विशेष रूप से बुरा कोड है:

-[1, ] संख्या के लिए परिणाम -1।

!-[1, ] हमेशा झूठा होगा।

चूंकि [] एक सरणी का तात्पर्य है, यह बुरा है, क्योंकि यदि आपके पास उस सरणी में एक से अधिक मान हैं, तो - आपको NaN देगा।

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