Диаграммы Google не работают в IE11 (но работают в Chrome), как это исправить? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть две страницы, одна страница index.html, которая показывает все диаграммы, и одна страница, которая показывает диаграмму и таблицу.Удивительно, но все диаграммы из index.html можно увидеть в IE11, но когда я открою страницу с диаграммой и таблицей, это не произойдет.

Что я должен изменить в коде, чтобы IE мог распознавать диаграммы?

Вот код, который я использовал, предоставленный Google и внёс некоторые изменения.

<html>
  <head>

    <link href="stylesheet.css" rel="stylesheet" type="text/css">

    <script type="text/javascript" src="loader.js"></script>

    <script type="text/javascript">

     google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Metric', 'Score'],
    ['Uniqueness', 45.3],
    ['', 54.7]
  ]);

  var view = new google.visualization.DataView(data);
  view.setColumns([0, 1]);

  var options = {
    legend: 'none',
    title: 'Unique Identifiability',
    pieHole: 0.6,
    colors: ['#ff0000', '#808080']

  };

  var chart = new google.visualization.PieChart(document.getElementById('uniqueness'));



  google.visualization.events.addListener(chart, 'select', function () {
    var selection = chart.getSelection(); 



  });



  chart.draw(view, options);
}

        google.charts.load('current', {'packages':['table']});
        google.charts.setOnLoadCallback(drawTable);

        function drawTable() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Business Rule',);
        data.addColumn('string', '%',);
        data.addColumn('string', 'Total OK Values',);
        data.addColumn('string', 'Total Values',);

        data.addRows([
          ['Birth date must be filled', '58%','75365','129940'],
          ['Country must be filled', '98%','294028','300029'],
        ]);

        var table = new google.visualization.Table(document.getElementById('table_div'));

        table.draw(data, {showRowNumber: false, width: '100%', height: '100%'});
      }




    </script>

  </head>
  <body>



    <table class="columns">
      <tr>

        <td>
        <div><a href="index.html" class="next">BACK BUTTON</a></div>
        <div id="uniqueness" style="width: 1200px; height: 700px;"></div>
         <div id="table_div"></div>
        </td>

      </tr>


    </table>

  </body>
</html>

1 Ответ

0 голосов
/ 28 ноября 2018

IE не любит лишние запятые в операторах addColumn ...

data.addColumn('string', 'Business Rule',);
data.addColumn('string', '%',);
data.addColumn('string', 'Total OK Values',);
data.addColumn('string', 'Total Values',);

не требуется, удалите их ...

data.addColumn('string', 'Business Rule');
data.addColumn('string', '%');
data.addColumn('string', 'Total OK Values');
data.addColumn('string', 'Total Values');

такжеГрафики Google нужно загружать только один раз на страницу,
не один раз на график.

Вы можете загрузить несколько пакетов одновременно.

google.charts.load('current', {packages:['corechart', 'table']});

см. Следующий рабочий фрагмент ...

google.charts.load('current', {packages:['corechart', 'table']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Metric', 'Score'],
    ['Uniqueness', 45.3],
    ['', 54.7]
  ]);

  var view = new google.visualization.DataView(data);
  view.setColumns([0, 1]);

  var options = {
    legend: 'none',
    title: 'Unique Identifiability',
    pieHole: 0.6,
    colors: ['#ff0000', '#808080']

  };

  var chart = new google.visualization.PieChart(document.getElementById('uniqueness'));
  google.visualization.events.addListener(chart, 'select', function () {
    var selection = chart.getSelection();
  });
  chart.draw(view, options);


  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Business Rule');
  data.addColumn('string', '%');
  data.addColumn('string', 'Total OK Values');
  data.addColumn('string', 'Total Values');

  data.addRows([
    ['Birth date must be filled', '58%','75365','129940'],
    ['Country must be filled', '98%','294028','300029'],
  ]);

  var table = new google.visualization.Table(document.getElementById('table_div'));

  table.draw(data, {showRowNumber: false, width: '100%', height: '100%'});
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="uniqueness" style="width: 1200px; height: 700px;"></div>
<div id="table_div"></div>
...