2012-02-23 9 views
59

में innerWidth जाओ करो सभी हाल ही ब्राउज़र में:मैं कैसे इंटरनेट एक्सप्लोरर 8

window.innerWidth // 1920 

इंटरनेट एक्सप्लोरर 8

window.innerWidth // undefined 

सबसे अच्छा तरीका है IE8 में इस मूल्य प्राप्त करने के क्या है?

+1

क्या आपने [jQuery] (http://jquery.com) की खोज की है? इसका उपयोग करके ऐसा करना बहुत आसान है। –

+0

हाँ निश्चित रूप से, $ (विंडो) .innerWidth() IE8 में भी ठीक काम करता है, धन्यवाद – antonjs

+4

@AntoJs '$ (विंडो) .innerWidth()' लंबवत स्क्रॉल बार पर 'window.innerWidth' के समान संख्या वापस नहीं करता है पेज पर दिखाई देता है। –

उत्तर

111

innerWidth IE9 नहीं IE8 के द्वारा समर्थित है, तो आप इस insteaad कर सकते हैं:

var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 

ऊपर लाइन आप IE से चौड़ाई के साथ ही अन्य मानक संगत ब्राउज़रों मिल जाएगा।


आप jQuery का उपयोग करते हैं, $(window).innerWidth() आप इच्छित परिणाम सभी ब्राउज़रों में भी दे देंगे।

+26

'$ (विंडो) .innerWidth() 'पृष्ठ पर लंबवत स्क्रॉल बार दिखाई देने पर' window.innerWidth' के समान संख्या वापस नहीं करता है। –

+6

.innerWidth() jquery दस्तावेज़ीकरण में उल्लिखित विंडो और दस्तावेज़ ऑब्जेक्ट्स पर लागू नहीं है। http://api.jquery.com/innerWidth/ "यह विधि विंडो और दस्तावेज़ ऑब्जेक्ट्स पर लागू नहीं है; इनके लिए, .width() का उपयोग करें।" –

+0

मुझे 'document.body की आवश्यकता थी।क्लाइंटविड्थ 'आईई 9 (क्विर्क) में भी – jan

2

आप के साथ

document.documentElement.clientWidth 

याद रखें कि इस मूल्य बिल्कुल वैसा ही है कि window.innerWidth के लिए IE 9 रिटर्न नहीं होगा आईई 8 से यह जानकारी प्राप्त कर सकते हैं।

1

jQuery के बिना आप इस height प्राप्त करने की कोशिश कर सकते हैं और width

var myWidth = 0, myHeight = 0; 
if (typeof (window.innerWidth) == 'number') { //Chrome 
    myWidth = window.innerWidth; 
    myHeight = window.innerHeight; 
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
    myWidth = document.documentElement.clientWidth; 
    myHeight = document.documentElement.clientHeight; 
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { //IE9 
    myWidth = document.body.clientWidth; 
    myHeight = document.body.clientHeight; 
} 
+1

टिप्पणी 'क्रोम' भ्रामक है क्योंकि यह संपत्ति सभी आधुनिक ब्राउज़रों द्वारा समर्थित है: https://developer.mozilla.org/en-US/docs/Web/API/window.innerWidth?redirectlocale=en-US&redirectslug=DOM% 2Fwindow.innerWidth # ब्राउज़र_कंपीबिलिटी ... IE9 सहित जो 'अन्य अगर' अप्रचलित बनाता है। – retrovertigo

+1

क्या आपने सवाल पढ़ा है? ओपी ने कोड के लिए कहा है जो आईई 8 –

+1

के लिए काम करेगा, मुझे 'अप्रचलित "अगर दोबारा दोहराता है। – retrovertigo

0
document.documentElement.clientWidth; 

इस ग्राहक चौड़ाई

4
IE8 के लिए

का उपयोग

document.documentElement.clientWidth 
-1

कृपया पाने के लिए IE8 के लिए प्रयोग किया जाता है नोट: .innerWidth विधि विंडो और दस्तावेज़ ऑब्जेक्ट्स पर लागू नहीं है; इनके लिए, इसके बजाय .width() का उपयोग करें।

jquery api documentation for .innerwidth()

+1

मुझे पता है कि यह लगभग एक वर्ष पुराना है ... लेकिन ओपी jQuery का उपयोग नहीं कर रहा है ... –

5

इस हो रही के लिए, मैं अभी भी उपयोग करें:

window.innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
window.innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 

लेकिन नकल करने के लिए वास्तविक डोम-गेटर इस पर एक नज़र डालें: https://stackoverflow.com/a/18136089/1250044

4

मुझे पता है कि innerWidth नहीं हो सकता है काफी समान हो, लेकिन getBoundingClientRect का उपयोग इसी तरह की क्षमता में भी किया जा सकता है:

elem = document.documentElement.getBoundingClientRect(); 
width = elem.getBoundingClientRect().right - elem.getBoundingClientRect().left; 
संबंधित मुद्दे