2016-10-11 2 views
1

지원되는 모든 브라우저에서 사용할 차트를 일부 개발 중이며 IE9에서만 오류가 발생합니다. 콘솔에는 다음 중 하나가 표시됩니다. gvjs_wa가 정의되지 않았거나 gvjs_t가 정의되지 않았거나 gvjs_uz가 정의되지 않았습니다.Google Chart IE9 문제 (정의되지 않음)

감사합니다.

<HTML> 
<head> 
<script src="https://www.gstatic.com/charts/loader.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script> 

    function drawGLine() { 
     var bin =JSON.parse('[0.65, 0.78, 1.16, 1.68, 2.0, 2.56, 3.03, 3.65, 4.51, 5.16, 6.0, 6.58, 7.47, 8.57, 9.58, 10.38, 11.28, 12.25, 13.03, 13.78, 14.8, 15.69, 16.49, 17.33, 18.06, 18.96, 20.49, 21.85, 22.94, 24.14, 25.31, 26.27, 27.22, 28.12, 29.87, 31.56, 32.58, 33.67, 35.14, 37.33, 38.41, 40.02, 41.87, 43.31, 44.98, 46.03, 47.84, 49.1, 50.81, 52.38, 54.17, 55.37, 57.3, 59.13, 61.14, 63.39, 64.43, 65.92, 67.53, 69.04, 70.82, 72.07, 73.17, 74.9, 76.63, 78.16, 79.2, 80.33, 81.09, 82.36, 83.34, 84.35, 85.27, 86.48, 87.58, 88.37, 89.25, 89.89, 90.68, 91.24, 92.2, 92.83, 93.87, 94.82, 95.38, 95.94, 96.58, 97.21, 97.45, 97.85, 98.25, 98.57, 98.81, 98.81, 99.28, 99.44, 99.44, 99.6, 99.84, 100.0, 100.0]'); 
     var culmativeData =JSON.parse('[0.0, 7.0, 14.0, 21.0, 28.0, 34.0, 41.0, 48.0, 55.0, 62.0, 69.0, 76.0, 83.0, 89.0, 96.0, 103.0, 110.0, 117.0, 124.0, 131.0, 138.0, 144.0, 151.0, 158.0, 165.0, 172.0, 179.0, 186.0, 193.0, 200.0, 206.0, 213.0, 220.0, 227.0, 234.0, 241.0, 248.0, 255.0, 261.0, 268.0, 275.0, 282.0, 289.0, 296.0, 303.0, 310.0, 316.0, 323.0, 330.0, 337.0, 344.0, 351.0, 358.0, 365.0, 372.0, 378.0, 385.0, 392.0, 399.0, 406.0, 413.0, 420.0, 427.0, 433.0, 440.0, 447.0, 454.0, 461.0, 468.0, 475.0, 482.0, 488.0, 495.0, 502.0, 509.0, 516.0, 523.0, 530.0, 537.0, 544.0, 550.0, 557.0, 564.0, 571.0, 578.0, 585.0, 592.0, 599.0, 605.0, 612.0, 619.0, 626.0, 633.0, 640.0, 647.0, 654.0, 660.0, 667.0, 674.0, 681.0, 688.0]'); 

     var dataArray = [['X','Test']]; 

     for(i = 0; i < bin.length; i++){ 
      dataArray.push([culmativeData[i], bin[i]]); 
     } 
     var data = new google.visualization.arrayToDataTable(dataArray); 
     var options = { 
      title: 'Test', 
      curveType: 'function', 
      legend: { position: 'bottom' }, 
      vAxis:{ title:'Probability (%)', 
       viewWindow:{ min:0, max: 100} 
      }, 
      hAxis:{ title:'Cost', 
      format: 'currency'} 
     }; 
     var chart = new google.charts.Line(document.getElementById('chart')); 
     chart.draw(data, google.charts.Line.convertOptions(options)); 
    } 
    $(document).ready(function(){ 
     google.charts.load('current', {'packages':['line']}); 
     google.charts.setOnLoadCallback(drawGLine); 
    }); 
</script> 
</head> 
<body> 
<div id="chart"></div> 
</Body> 
</HTML> 

답변

1

것은 내가 JQuery와

를 제거하는 것이 좋습니다, 구글 차트 JQuery와 충돌의 setOnLoadCallback 방법

google.setOnLoadCallback not able to get the document elements
GoogleChart not working in MVC

와 특별히
다음을 배제하기 위해 과거에 질문을 본 적이

Google의 callback을 참조 할 수 있습니다. 페이지 어쨌든 $(document).ready에 대한
그래서 정말 필요

는 다음 코드를 시도하는 것이 좋습니다 준비가 없을 때 직접 load 성명에서
은 당신은 ... 알고하는 callback에 따라 달라질 수 있습니다 CED

function drawGLine() { 
 
    var bin =JSON.parse('[0.65, 0.78, 1.16, 1.68, 2.0, 2.56, 3.03, 3.65, 4.51, 5.16, 6.0, 6.58, 7.47, 8.57, 9.58, 10.38, 11.28, 12.25, 13.03, 13.78, 14.8, 15.69, 16.49, 17.33, 18.06, 18.96, 20.49, 21.85, 22.94, 24.14, 25.31, 26.27, 27.22, 28.12, 29.87, 31.56, 32.58, 33.67, 35.14, 37.33, 38.41, 40.02, 41.87, 43.31, 44.98, 46.03, 47.84, 49.1, 50.81, 52.38, 54.17, 55.37, 57.3, 59.13, 61.14, 63.39, 64.43, 65.92, 67.53, 69.04, 70.82, 72.07, 73.17, 74.9, 76.63, 78.16, 79.2, 80.33, 81.09, 82.36, 83.34, 84.35, 85.27, 86.48, 87.58, 88.37, 89.25, 89.89, 90.68, 91.24, 92.2, 92.83, 93.87, 94.82, 95.38, 95.94, 96.58, 97.21, 97.45, 97.85, 98.25, 98.57, 98.81, 98.81, 99.28, 99.44, 99.44, 99.6, 99.84, 100.0, 100.0]'); 
 
    var culmativeData =JSON.parse('[0.0, 7.0, 14.0, 21.0, 28.0, 34.0, 41.0, 48.0, 55.0, 62.0, 69.0, 76.0, 83.0, 89.0, 96.0, 103.0, 110.0, 117.0, 124.0, 131.0, 138.0, 144.0, 151.0, 158.0, 165.0, 172.0, 179.0, 186.0, 193.0, 200.0, 206.0, 213.0, 220.0, 227.0, 234.0, 241.0, 248.0, 255.0, 261.0, 268.0, 275.0, 282.0, 289.0, 296.0, 303.0, 310.0, 316.0, 323.0, 330.0, 337.0, 344.0, 351.0, 358.0, 365.0, 372.0, 378.0, 385.0, 392.0, 399.0, 406.0, 413.0, 420.0, 427.0, 433.0, 440.0, 447.0, 454.0, 461.0, 468.0, 475.0, 482.0, 488.0, 495.0, 502.0, 509.0, 516.0, 523.0, 530.0, 537.0, 544.0, 550.0, 557.0, 564.0, 571.0, 578.0, 585.0, 592.0, 599.0, 605.0, 612.0, 619.0, 626.0, 633.0, 640.0, 647.0, 654.0, 660.0, 667.0, 674.0, 681.0, 688.0]'); 
 

 
    var dataArray = [['X','Test']]; 
 

 
    for(i = 0; i < bin.length; i++){ 
 
     dataArray.push([culmativeData[i], bin[i]]); 
 
    } 
 
    var data = new google.visualization.arrayToDataTable(dataArray); 
 
    var options = { 
 
     title: 'Test', 
 
     curveType: 'function', 
 
     legend: { position: 'bottom' }, 
 
     vAxis:{ title:'Probability (%)', 
 
      viewWindow:{ min:0, max: 100} 
 
     }, 
 
     hAxis:{ title:'Cost', 
 
     format: 'currency'} 
 
    }; 
 
    var chart = new google.charts.Line(document.getElementById('chart')); 
 
    chart.draw(data, google.charts.Line.convertOptions(options)); 
 
} 
 
google.charts.load('current', { 
 
    callback: drawGLine, 
 
    packages: ['line'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart"></div>

편집

0 냉동 버전도
도움이 될 이전 또는 를 사용하는 대신 'current' 버전

이 시간의 최신 냉동 버전, 을 사용하여 위 이외에

'45'
당신 '41'

, 버전으로 돌아갈 수 있습니다.즉

google.charts.load('44', { 
    callback: drawGLine, 
    packages: ['line'] 
}); 

, 문제 해결 ... 'current'release가 업데이트 될 때 중단하지 않는 것을 보장하기 위해 냉동 버전 어쨌든,
를 사용하는 것이 좋습니다

+0

안녕하세요, 빠른 답장을 보내 주셔서 감사합니다, 제안 사항을 따르기 위해 코드를 편집 해 보았지만 오류가 계속 발생하면 다른 조언이 있습니까? 감사합니다. –

+0

예, 이전 버전의 Google을 사용해보세요. ''current ''를 사용하는 것보다''45 '' 또는''44 '',''41 ''까지 모두 시도하십시오 ... – WhiteHat

+0

감사합니다, 버전 44가 작동했습니다! 이 해결 방법으로 원래 응답을 업데이트 할 수 있습니까 –