Визуализация Google (PieChart / LineChart) Jquery Ajax Firefox проблема - PullRequest
3 голосов
/ 15 сентября 2010

Я столкнулся с ошибкой в ​​Firefox и провел поиск по всему, и, похоже, не нашел ответа на проблему, с которой столкнулся.

Моя программа отлично работает в Chrome и IE, но диаграммы iframe не работают в Firefox.

Я использую обработчик, а затем jquery.ajax, чтобы получить данные и запуститьскрипт.

jQuery.ajax({
                    url: jQuery(this).attr("href"),
                    data: data,
                    dataType: 'script'
});

data = вся информация для круговой диаграммы и вся информация для таблицы.С таблицей все в порядке, но фрейм круговой диаграммы пуст.Если я нажму кнопку возврата, появится круговая диаграмма.Это похоже на то, что круговая диаграмма в Firefox выходит за пределы допустимого.

данные выглядят так, за исключением моих собственных данных.Это передается от обработчика к вызову ajax

    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Task');
    data.addColumn('number', 'Hours per Day');
    data.addRows(5);
    data.setValue(0, 0, 'Work');
    data.setValue(0, 1, 11);
    data.setValue(1, 0, 'Eat');
    data.setValue(1, 1, 2);
    data.setValue(2, 0, 'Commute');
    data.setValue(2, 1, 2);
    data.setValue(3, 0, 'Watch TV');
    data.setValue(3, 1, 2);
    data.setValue(4, 0, 'Sleep');
    data.setValue(4, 1, 7);

    var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, {width: 450, height: 300, title: 'My Daily Activities'});

Кто-нибудь еще сталкивался с подобной проблемой?Я знаю, что данные передаются правильно и все получено, но кажется, что Firefox не очень хорошо играет с iframes.

Если у кого-то есть какие-либо предложения или мысли, это было бы здорово

Спасибо

Ответы [ 3 ]

6 голосов
/ 09 декабря 2010

У меня была такая же проблема только на FFox.

Я решил обернуть все в функцию и вызвать ее с небольшим setTimeout

function drawChart() {
  //...
}

setTimeout(drawChart, 200);
1 голос
/ 24 октября 2012

У меня была та же проблема с Firefox на прошлой неделе, и комбинация обоих ответов работала для меня также хорошо. Разница в том, что я использую $ .load вместо iframe, поэтому мне не нужно включать jQuery в pgae, извлекаемую AJAX.

В Chrome на странице AJAX работали:

<script>
    google.setOnLoadCallback(drawChart, true);
</script>

В Firefox это не сработало, поэтому я просто использовал:

<script>
    $(document).ready(function() {
        function drawChart() {} // omitted
        drawChart();
    });
</script>

, который работал для меня как в Chrome 22, так и в Firefox 16.0.1

1 голос
/ 01 ноября 2010

Через несколько часов после прочтения вашего поста, что проблема только в FF, я нашел решение. Импортируйте JQuery на свою страницу

<script src="../GoogleJs/jquery-1.4.2.min.js" type="text/javascript"></script>

затем добавьте тег

$(document).ready(function () {
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

      function EndRequestHandler(sender, args) {
        drawVisualization()
      }

    });

где drawVisualization () - это функция рисования. Это работает как шарм ...

p.s. спасибо, что заметили, что FF была проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...