2014-03-19 4 views
0

나는이 사파리에서 다음과 같은 오류 :사파리 나던 디스플레이 nvd3 차트

TypeError: 'NaN' is not a valid argument for 'in' (evaluating 'n in t') 

이 (safati 개발 도구에서) 그 이유 것으로 보인다 코드의 조각입니다 :

function nn(e) { 
    return function(t, n) { 
    return t += e, [t > Fa ? t-2 * Fa: - Fa > t ? t + 2 * Fa: t, n] 
    } 
} 

Src : nvd3.min.js

차트가 다른 브라우저 (IE 포함)에서 올바르게 작동하고 있습니다. PIE, LINE BAR, BULLET을 사용하는 차트 유형입니다.

UPDATE는 여기에서 nvd3의 현재 개발 버전을 사용 : https://raw.github.com/novus/nvd3/master/nv.d3.min.js.

내 유성애 프로젝트를 Safari에서 실행하고 처리되지 않은 (같은) 예외가 발생했습니다. d3.v3.js, 줄 4748().

function d3_interpolateObject(a, b) { 
var i = {}, c = {}, k; 
for (k in a) { 
    if (k in b) { 
    i[k] = d3_interpolateByName(k)(a[k], b[k]); 
    } else { 
    c[k] = a[k]; 
    } 
} 
for (k in b) { 
    if (!(k in a)) { 
    c[k] = b[k]; 
    } 
} 
return function(t) { 
    for (k in i) c[k] = i[k](t); 
    return c; 
}; 

}

나는 또한 D3의 '버그'부분을 호출 내 코드의 조각을 발견

try { 
    d3.select('#chart3 svg') 
    .datum(data) 
    .transition().duration(1000) 
    .call(chart); 
} 
catch (e) { 
    console.log(e.message); 
} 

이는 '총알'차트입니다. 나는 라인 바 차트와 동일한 문제가 있습니다. 데이터는 다음과 같이 표시됩니다.

 var data = { 
      "title": "test", 
      "subtitle": "test", 
      "ranges": [1, 2, 3], 
      "measures": [x], 
      "markers": [x], 
      "rangeLabels": ['test', 'test', 'test'], 
      "measureLabels": ['test'], 
      "markerLabels": ['test'] 
     }; 

여기서 x는 부동 소수점 숫자입니다.

+1

여기에 'n 중 t'표현이 표시되지 않습니다. 또한이 표현식을 nvd3.min.js에서 찾을 수 없습니다.이 코드가 사용하는 코드 한정자가 축소 된 코드를 변환하는 것으로 의심됩니다. 당신은 nvd3의 un-minified 버전을 사용할 수 있습니까? 그렇지 않으면 nvd3의 버그처럼 들립니다. –

+0

최신 버전의 NVD3을 사용하고 있는지 확인하십시오. [NVD3는 WebKit 기반 브라우저에서 최상으로 실행됩니다.] (https://github.com/novus/nvd3#supported-browsers) .'Google Chrome : 최신 버전 (선호) ','Opera 15+ (선호) ','Safari : 최신 버전','파이어 폭스 : 최신 버전', '인터넷 익스플로러 : 9, 10' – shabeer90

답변

0

사파리 관련 내부 d3 데이터 구문 분석에 문제가있었습니다.

그래서 차트 유형을 간단한 막대로 변경하면 문제가 해결되었습니다.

관련 문제