2013-03-04 13 views
18

की संपत्ति 'प्रोटोटाइप' प्राप्त करने में असमर्थ मेरा पृष्ठ IE9, सफारी, क्रोम & फ़ायरफ़ॉक्स में पूरी तरह से लोड हो रहा है।IE10 d3.v3.js त्रुटि: अपरिभाषित या शून्य संदर्भ

लेकिन जब यह IE10 को coems, यह त्रुटि फेंकता है: d3_window.CSSStyleDeclaration.prototype: गुण अपरिभाषित या नल संदर्भ d3.v3.js में लाइन पर की 'प्रोटोटाइप' नहीं मिल रहा।

try { 
    d3_document.createElement("div").style.setProperty("opacity", 0, ""); 
    } catch (error) { 
    var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty; 
    d3_style_prototype.setProperty = function(name, value, priority) { 
     d3_style_setProperty.call(this, name, value + "", priority); 
    }; 
    } 

मुझे यह नहीं मिल रहा है कि वास्तव में क्या किया जा रहा है।

कोशिश ब्लॉक भले ही setProperty विधि हम d3_document.createElement("div").style पर डिबगर में देख सकते हैं यह रूप में त्रुटि फेंक रहा है: वस्तु संपत्ति या विधि 'setProperty' का समर्थन नहीं करता

कैच ब्लॉक में यह कोशिश करता है विंडो के CSSStyleDeclaration के प्रोटोटाइप तक पहुंचने के लिए, लेकिन यह अपरिभाषित है। जबकि d3.v3.js

+0

हाँ मुझे एक ही समस्या है लेकिन मुझे अभी तक समाधान नहीं मिला है। ईसीएमए 5 की आईईएस की कमी के साथ कुछ करने के लिए कुछ हो सकता है। मुझे Array.map https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map – Peter

+0

के साथ कोई समस्या थी आईई 9 का उपयोग कर त्रुटि, एक ही पंक्ति 9. क्या आपने कभी इसे हल किया था? – balazs

उत्तर

48

यह एक DOCTYPE साथ ठीक किया जा सकता की तरह काम करना चाहिए और समझ नहीं आया कि CSSStyleDeclaration क्या है।

-1

का उपयोग कर ऐसा लगता है कि यह एक ज्ञात समस्या है और तय करने के लिए की संभावना नहीं

किसी एक ही समस्या के साथ हुई।

https://groups.google.com/forum/?fromgroups=#!topic/d3-js/8lQ2BCR45BM

काम के आसपास डी 3 चुनिंदा लोड करने के लिए है - यह मेरे लिए काम करता है -

// load d3.js selectively 
try { 
      // if this doesnt throw an error then we can load d3.js 
      // this is known to fail in IE < 8 
      document.createElement("div").style.setProperty("opacity", 0, "") 

      var d3Script = document.createElement("script") 

      d3Script.src = "@Href("~/JavaScript/d3.js")" 

      d3Script.onload = function(){ 
       // do stuff 
      } 

      document.getElementsByTagName("head")[0].appendChild(d3Script) 
} catch(error) { 
      // upgrade your browser 
} 
1

था एक ही समस्या जो अनियमित होने के लिए इस्तेमाल किया, कुछ शोध मैं निष्कर्ष निकाला कि यह अमान्य सीएसएस सेट करता है के बाद (देखने के आईई बिंदु से) गुण है कि, यह कारण मेरे मामले में: someSvg.append('svg:text') .text(function (d) { return d.label; }) .attr('text-anchor', 'left')

यह कहाँ किया जाना चाहिए था

012,
.attr('text-anchor', 'start') 

तो मेरी सलाह सभी स्क्रिप-स्टाइलिंग, या इससे भी बेहतर समीक्षा करने के लिए होगी - उन्हें पूरी तरह से सीएसएस में ले जाएं।

<!DOCTYPE html> 

और एक meta टैग:

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

उन के बिना, IE quirks मोड में जाना जाएगा इस तरह के ठीक बाद यह IE9 में आकर्षण +