2010-12-16 12 views
13

मैं एक jQuery फ़ंक्शन में आईई 7 कथन के साथ आईई 7 को लक्षित करने की कोशिश कर रहा हूं। इस विशिष्ट बिट पर मेरा कोड है:jQuery के साथ लक्ष्य IE7

if($.browser.msie && $.browser.version.substring(0) == "7") { 
    //Do something 
} 

क्या यह सही है?

+4

क्या आपने इसका परीक्षण किया है? – Domenic

+0

क्या आप शायद कुछ करने के लिए "सही" तरीका ढूंढ रहे हैं? यदि नहीं, तो बस आपको कोड का परीक्षण करें और देखें कि यह काम करता है या नहीं? – gideon

+0

मुझे लगता है कि 'parseInt ($। Browser.version) == 7' सुंदर होगा। – karim79

उत्तर

37

प्रयास करें:

if($.browser.msie && parseInt($.browser.version, 10) == 7) { 
    //Do something 
} 

और @Andrew व्हिटेकर टिप्पणी के रूप में, बजाय किसी विशिष्ट ब्राउज़र को लक्षित करने के बजाय सुविधाओं का पता लगाने पर विचार करें।

+0

उस कथन के साथ सहमत हुए। यहां तक ​​कि jquery apis निम्नलिखित कहते हैं: "हम इस संपत्ति का उपयोग करने के खिलाफ अनुशंसा करते हैं, कृपया इसके बजाय फीचर डिटेक्शन का उपयोग करने का प्रयास करें।" (http://api.jquery.com/jQuery.browser/) – Tjirp

+4

@Tjirp, मुझे नहीं लगता कि "आईई 7 ड्रॉ स्क्रॉलबार के लिए 'फीचर' का पता लगाने का एक तरीका है ओवरफ्लो पर सामग्री विंडो के अंदर, आईई 8 उन्हें बाहर खींचता है "। – CaffGeek

+0

अच्छी लिपि, अपवोट। हालांकि, अगर मैं आईई 7 और आईई 8 को लक्षित करना चाहता हूं तो क्या होगा? मैंने 'if ($। Browser.msie && parseInt ($। Browser.version, 10) == 7,8) के साथ परीक्षण किया और यह काम करता है। हालांकि, मेरे जेएसलिंट ने मुझे बताया कि एक त्रुटि है। मैं एक जावास्क्रिप्ट गुरु नहीं हूं इसलिए मुझे समझ में नहीं आता कि त्रुटि का क्या अर्थ है। मेरा विचार डीवायआर है इसलिए मुझे दो अलग-अलग ब्राउज़रों के लिए एक ही फ़ंक्शन दोहराना नहीं है। कोई विचार यह कैसे पूरा करने के लिए? धन्यवाद। –