Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

google not defined in google script - Error

I get the error "google is not defined", from my google script that creates a table using google.visualization.

How do you add a reference to a google script, and if I get it to run in scripts will I also have to add it to my google site? I'll put my script below.

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

  function doGet() {

    drawTable()

  }
function drawTable() {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Name');
  data.addColumn('number', 'Salary');
  data.addColumn('boolean', 'Full Time');
  data.addRows(1);
  data.setCell(0, 0, 'John');
  data.setCell(0, 1, 10000, '$10,000');
  data.setCell(0, 2, true);

  var table = new google.visualization.Table(document.getElementById('table_div'));
  table.draw(data, {showRowNumber: true});

  google.visualization.events.addListener(table, 'select', function() {
    var row = table.getSelection()[0].row;
    alert('You selected ' + data.getValue(row, 0));
  });
}
like image 810
Luk6e Avatar asked Apr 04 '15 01:04

Luk6e


People also ask

Why is my Google script not working?

There are a few possible causes for these errors: A Google server or system is temporarily unavailable. Wait for a few moments and try running the script again. There is an error in your script that doesn't have a corresponding error message.

What is === in Google script?

Equality (==): a == b results in true if the value a is equal to value b. Strict equality (===): a === b results in true if the value a is equal to value b and their types are also the same. Inequality (! =): a !=

How do I add a JSON file to a Google script?

Open the script project in the Apps Script editor. At the left, click Project Settings settings. Select the Show "appsscript. json" manifest file in editor checkbox.


1 Answers

Apps Script uses JavaScript as it's server side code. Originally, JavaScript was designed as a language to run in the browser (on the users computer). JavaScript in an HTML file, won't run the JavaScript on Google's servers.

In the script editor, you can create two types of files:

  • Script
  • HTML

doGet() can only be used in a .gs script file. You can't use it in HTML JavaScript.

Your Code.gs file should have some code that looks like this:

Code.gs

function doGet() {
  return HtmlService.createTemplateFromFile('index')
    .evaluate()
    .setSandboxMode(HtmlService.SandboxMode.NATIVE);
};

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename).getContent();
};

Then you need an HTML file.

index.html

<div id="EntireSite">

  <div>
      body
    <?!= include('Chart'); ?>
    <br><br><br><br><br><br><br><br><br><br><br>
  </div>

  <div>
    My Footer
  </div>

  <div style="background: brown">
    <br>
    <br>
    <br>
    <br>
  </div>

</div>

In this example, you need a second HTML file for the chart:

Chart.html

<script type="text/javascript">
    google.load("visualization", '1', {packages:['corechart']});
    google.setOnLoadCallback(drawChart);

    function drawChart() {

      var data = google.visualization.arrayToDataTable([
        ['Element', 'Density', { role: 'style' }],
        ['Copper', 8.94, '#b87333', ],
        ['Silver', 10.49, 'silver'],
        ['Gold', 19.30, 'gold'],
        ['Platinum', 21.45, 'color: #e5e4e2' ]
      ]);

      var options = {
        title: "Density of Precious Metals, in g/cm^3",
        bar: {groupWidth: '95%'},
        legend: 'none',
      };

      var chart_div = document.getElementById('chart_div');
      var chart = new google.visualization.ColumnChart(chart_div);

      chart.draw(data, options);
  }
</script>

<div id='chart_div'></div>
like image 119
Alan Wells Avatar answered Sep 30 '22 05:09

Alan Wells