1

В этом фрагменте кода `Не удается прочитать свойство «Query» неопределенных

1) function gvizSelect(tableid) { 
2) var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
3) var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
4) var query = new google.visualization.Query(queryText); 
5) query.send(getData); 
6) } 

`

Я подтвердил, что URL queryText будет производить надлежащий набор ответов, если просмотрены непосредственно; однако строка 4 генерирует следующую ошибку; «Uncaught TypeError: невозможно прочитать свойство« Запрос »неопределенного.»

Вот полный HTML-файл, который показывает ошибку я получаю

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Indianatrails.com</title> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script type=text/javascript> 
    google.load('visualization', '1', 
      { 
       'packages':['corechart', 'table', 'geomap'] 
      } 
    ); 
    var tableid = '1ZxSfeVZWVm_PuTe8Q5THFwmyR0NcGQzbSdCvQds'; 
    var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
    var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
    var query = new google.visualization.Query(queryText); 
    query.send(getData); 
    </script> 
    <body> 
    <h1>Test</h1> 
    </body> 
</html> 

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

+0

вы включая [визуализации API] (https://developers.google.com/chart/ интерактивный/Docs/basic_load_libs)? – geocodezip

+0

Да. Это включено как блок сценария в HTML-файл, вызывающий это. –

+0

, но не было в вашем первоначальном вопросе ... – geocodezip

ответ

3

Если вы используете google.load(), вам нужно дождаться загрузки скрипта перед его использованием. Вы можете установить функцию обратного вызова (google.setOnLoadCallback).

<script type=text/javascript> 
    // Set a callback to run when the Google Visualization API is loaded. 
    google.setOnLoadCallback(runQuery); 
    google.load('visualization', '1', 
      { 
       'packages':['corechart', 'table', 'geomap'] 
      } 
    ); 
function runQuery() { 
    var tableid = '1ZxSfeVZWVm_PuTe8Q5THFwmyR0NcGQzbSdCvQds'; 
    var uri = "SELECT geometry FROM " + tableid + " WHERE name = 10095"; 
    var queryText = "http://www.google.com/fusiontables/gvizdata?tq=" + encodeURIComponent(uri); 
    var query = new google.visualization.Query(queryText); 
    query.send(getData); 
} 
    </script> 

Конечно я получаю сообщение об ошибке, что GetData не определен (потому что это не так)

Смежные вопросы