2013-07-29 3 views
8

जब IE 8 में निम्न कोड चलाने में कोई त्रुटि हो रही है, लेकिन नहीं अन्य ब्राउज़रों में है:जावास्क्रिप्ट Document.Head अशक्त

'document.head' अशक्त या नहीं एक वस्तु है

यहाँ मेरी कोड है :

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> 
    <script type="text/javascript" src="respond.min.js"></script> 

    <script> 
    function load() { 
    document.getElementsByID("myFrame"); 
    } 
    </script> 
    </head> 
    <body>  

    <iframe src="http://instagram.com/p/bTlK6CRNcL/embed/" width="300" height="400" frameborder="0" scrolling="no" allowtransparency="true" id="myFrame" onload="load()"></iframe> 

</body> 
</html> 
+0

respond.min.js? –

+0

फ्रेमवर्क मैं ब्राउज़र में संगतता के लिए उपयोग कर रहा हूं। – qweqweqwe

उत्तर

14

document.head विफल रहता है क्योंकि IE8 यह (9 से पहले आईई का कोई संस्करण) का समर्थन नहीं करता; यह एचटीएमएल 5 की एक नई सुविधा है। इसके बजाय, आप किसी भी ब्राउज़र में निम्नलिखित इस्तेमाल कर सकते हैं:

var head = document.head || document.getElementsByTagName("head")[0]; 

तो document.head परिभाषित किया गया है (उपलब्ध), यह शॉर्ट सर्किट और उपयोग कि तुरंत होगा। यदि यह परिभाषित नहीं किया गया है, तो यह document.getElementsByTagName भाग का उपयोग करेगा, जो इसे किसी भी ब्राउज़र में पायेगा।

जब तक आप अपने कोड में this || that नहीं चाहते हैं, तो यह हमेशा सुरक्षित है और हमेशा document.getElementsByTagName("head")[0] का उपयोग करने के लिए पर्याप्त है।


संदर्भ:

+0

कोड संपादन देखें। – qweqweqwe

+0

@asg: संभवतः, Instagram एम्बेड में 'document.head' है, और आप इसे संपादित नहीं कर सकते हैं। – thirtydot

+0

शायद कोई आसान फिक्स नहीं है, लेकिन मुझे निश्चित रूप से पता नहीं है। – thirtydot

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