将Google图表连接到Internet Explorer中的javaScript计算器时出现问题

时间:2013-01-13 11:31:54

标签: javascript internet-explorer google-visualization

我一直致力于使用JavaScript设计计算器,将数据提供给Google柱形图。基本思想是计算结果确定图表中其中一列的高度。它的工作方式与Firefox和Chrome相同,但不适用于Internet Explorer,因为图表根本不会显示。我已经试着解决这个问题两天了,但没有成功,所以如果有人可以给n00b伸出援助之手,那将非常感激。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
    <SCRIPT LANGUAGE="JavaScript">
function CalculateSum(Atext, Btext, Ctext, form)
{
var A = parseFloat(Atext);
var B = parseFloat(Btext);
var C = parseFloat(Ctext);
form.Answer.value = A * B * C;
}
function ClearForm(form)
{
form.input_A.value = "";
form.input_B.value = "";
form.input_C.value = "";
form.Answer.value = "";
}
</script>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1', {packages: ['corechart']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        // Create and populate the data table.
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work', Number(a.value)],
          ['Eat', 2],
          ['Commute', 2],
          ['Watch TV', 2],
          ['Sleep', 7]
        ]);

        // Create and draw the visualization.
        new google.visualization.ColumnChart(document.getElementById('visualization')).
            draw(data, {title:"So, how was your day?"});
      }


      google.setOnLoadCallback(drawVisualization);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <FORM NAME="Calculator" METHOD="post">
<P>Population (billions): <INPUT TYPE=TEXT NAME="input_A" SIZE=10></P>
<P>Affluence (PPP US$): <INPUT TYPE=TEXT NAME="input_B" SIZE=10></P>
<p>Technology (tonnes per $): <Input TYPE=TEXT NAME="input_C" SIZE=10></p>
<P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="CalculateSum(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form); drawVisualization()"></P>
<P><INPUT TYPE="button" VALUE="Clear Fields" name="ClearButton" onClick="ClearForm(this.form)"></P>
<P>Impact (billions of tonnes): <INPUT TYPE=TEXT NAME="Answer" SIZE=12 id="a"></P>
</FORM>
    <div id="visualization" style="width: 600px; height: 400px;"></div>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

['Work', Number(a.value)],应为['Work', Number(document.getElementById("a").value)],

代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <FORM NAME="Calculator" METHOD="post">
<P>Population (billions): <INPUT TYPE=TEXT NAME="input_A" SIZE=10></P>
<P>Affluence (PPP US$): <INPUT TYPE=TEXT NAME="input_B" SIZE=10></P>
<p>Technology (tonnes per $): <Input TYPE=TEXT NAME="input_C" SIZE=10></p>
<P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="CalculateSum(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form); drawVisualization()"></P>
<P><INPUT TYPE="button" VALUE="Clear Fields" name="ClearButton" onClick="ClearForm(this.form)"></P>
<P>Impact (billions of tonnes): <INPUT TYPE=TEXT NAME="Answer" SIZE=12 id="a"></P>
</FORM>
    <div id="visualization" style="width: 600px; height: 400px;"></div>


    <script type="text/javascript">
function CalculateSum(Atext, Btext, Ctext, form)
{
var A = parseFloat(Atext);
var B = parseFloat(Btext);
var C = parseFloat(Ctext);
form.Answer.value = A * B * C;
}
function ClearForm(form)
{
form.input_A.value = "";
form.input_B.value = "";
form.input_C.value = "";
form.Answer.value = "";
}
</script>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1', {packages: ['corechart']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        // Create and populate the data table.
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work', Number(document.getElementById("a").value)],
          ['Eat', 2],
          ['Commute', 2],
          ['Watch TV', 2],
          ['Sleep', 7]
        ]);

        // Create and draw the visualization.
        new google.visualization.ColumnChart(document.getElementById('visualization')).
            draw(data, {title:"So, how was your day?"});
      }


      google.setOnLoadCallback(drawVisualization);
    </script>
  </body>
</html>