google.load search error loading

Автор: Aport Понедельник, Февраль 2nd, 2015 Нет комментариев

Рубрика: Уроки JavaScript

Начал писать свой плагин живого поиска с помощью Гугл API. Все было бы хорошо, но в момент вызова google.load(«search»,»1″) возникал ужасный баг, который делал всю страницу белой (очень похоже на момент, когда на странице неправильно сработал document.write).

Т.к. я подгружал jsapi с помощью jQuery функции $.getScript(«http://www.google.com/jsapi?key=KEY») и далее использовал Callback в котором вызывал google.load, отследить момент ошибки было очень сложно. Самое интересное, что в браузере никаких Javascript-ошибок не возникало. Поэтому, я начал пробовать подгружать скрипты отдельно перед тегом </head> (так говорилось в Google-документации). И вуаля, проблема сразу исчезла, но меня это не устраивало, т.к. подгружать кучу скриптов не хотелось, ведь поиском на странице могли воспользоваться, а могли и не пользоваться.

Чтобы выяснить в чем косяк, я выполнил подгрузку скриптов поиска google.load(«search»,»1″) через <script language=»Javascript» type=»text/javascript» src=»http://www.google.com/uds/?file=search&v=1″></script> и уже после подгружал jsapi с помощью $.getScript. И случилось невероятное, консоль ошибок в браузере показала ошибку «google_exportSymbol is not defined», по которой и был найден ответ в google-ajax-apis

И тут, разработчик объяснил проблему посоветовав использовать свой callback для функциии google.load. Я попробовал поставить обычную callback-функцию заглушку, и это полностью решило проблему. Так что, если Вы сталкивались с подобным, то просто применяйте функцию кэллбэк заглушки, например так:

google.load(«search»,»1″,{‘nooldnames’: true, «callback»:myCallbackBlank});

function myCallbackBlank(){ }

Полезные ссылки: примерыкомната тестированияинтересная статья для новичков

Удачного программирования ;)

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты