2012-10-30 15 views
5

संभव डुप्लिकेट:
Why does IE nuke window.ABC variables?IE में वैश्विक चर विषमताएं

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
</head> 
<body> 
    <script> 
     if(typeof q === "undefined"){ 
      window.q = {test: "test"}; 
     } 
     alert("1="+q) 
    </script> 
    <script> 
     alert("2="+q) 
     if(typeof q === "undefined"){ 
      var q = {}; 
     } 
     alert("3="+q.test) 
    </script> 
    <script> 
     alert("4="+q.test) 
    </script> 
</body> 

IE8 में, परिणाम

1=[object Object] 
2=undefined 
3=undefined 
4=undefined 
है

दूसरा scriptwindow के q को ओवरराइड करना प्रतीत होता है।

यदि मैं पहले script से q={test:"test"} में window.q = {test: "test"}; पर कोड बदलता हूं, तो परिणाम अन्य ब्राउज़रों के समान होगा।

क्या यह आईई में एक बग है?

+0

यह केवल IE 8. IE 9+ काम ठीक में हो रहा है। –

उत्तर

2

मुझे एक बग की तरह लग रहा है। आईई 10 में, उपरोक्त उपज

1=[object Object] 
2=[object Object] 
3=test 
4=test 

यह फ़ायरफ़ॉक्स के समान व्यवहार है।

संपादित करें: यह भी देखें https://stackoverflow.com/a/2635726/1641070 और Why does IE nuke window.ABC variables?

+0

यह आईई 9 में भी ठीक काम करता है –

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