загрузка jQuery - страница визуализаций Google - PullRequest
0 голосов
/ 17 июня 2009

У меня есть страница с несколькими ссылками и div, на той же странице, куда я буду загружать другой контент. Часть этого контента - графики Google визуализаций.

Так же, как тест, я ввел код гугл-графика. Страница загружается сама по себе, но когда я пытаюсь загрузить ее в div (используя jQuery), она не работает. Firefox сообщает, что передает данные с google.com, и ничего не делает, а в IE 6 возникает ошибка JS, в которой говорится, что google не определено.

Я не понимаю, почему это может быть проблемой, но страница находится во внутренней сети ... если это помогает устранить неполадки.

Спасибо за любую помощь заранее.

Вот код, который загружает файл mainContent.html в div.

    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#A2W").click(function(){
                $("#loadContent").load("mainContent.html");
            });
        }); 
    </script>

Содержимое mainContent.html

<html>
  <head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["linechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Year');
        data.addColumn('number', 'Sales');
        data.addColumn('number', 'Expenses');
        data.addRows(4);
        data.setValue(0, 0, '2004');
        data.setValue(0, 1, 1000);
        data.setValue(0, 2, 400);
        data.setValue(1, 0, '2005');
        data.setValue(1, 1, 1170);
        data.setValue(1, 2, 460);
        data.setValue(2, 0, '2006');
        data.setValue(2, 1, 860);
        data.setValue(2, 2, 580);
        data.setValue(3, 0, '2007');
        data.setValue(3, 1, 1030);
        data.setValue(3, 2, 540);

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, {width: 400, height: 240, legend: 'bottom', title: 'Company Performance'});
      }
    </script>
  </head>

  <body>
    <div id="chart_div"></div>
  </body>
</html>

1 Ответ

1 голос
/ 17 июня 2009

Попытка вставить всю HTML-страницу в div, который уже является частью HTML-страницы, - это путь к катастрофе. Вы закончите с браузером, пытающимся решить, что делать со всеми вещами, которые находятся в неправильном месте. Возьмите, например, элемент , который вы только что вставили - должен ли он попытаться переместить его вверх? Он не может оставаться там, где он есть, так как это не имеет смысла. Если он перемещает его под исходный , должен ли он заменить существующий элемент ?

Тогда как насчет У него уже есть ; это должно выбросить это? Ах, но не может, потому что тогда он выбрасывает внутри внутри

...

Достаточно сказать, что поведение браузера, когда вы делаете что-то подобное, совершенно не определено, и, вероятно, он просто в отчаянии вскидывает руки и ничего не делает.

...