google.load custom js - PullRequest
       21

google.load custom js

2 голосов
/ 25 апреля 2010

Я использую Google AJAX API Как я могу загрузить пользовательский js, который зависит от библиотек, загруженных ajaxapi?

1 Ответ

2 голосов
/ 25 апреля 2010

Вы можете определить функцию, которая вставляет объект сценария в DOM, как

<script type="text/javascript">
function loadMyCustomJavaScript() {
    var script = document.createElement("script");
    script.src = "http://www.example.org/my.js";
    script.type = "text/javascript";
   document.getElementsByTagName("head")[0].appendChild(script);
}
</script>

и используйте его как google.setOnLoadCallback

<script src="http://www.google.com/jsapi?key=ABCDEFG" type="text/javascript"></script>
<script type="text/javascript">
    google.load("jquery", "1");
    google.setOnLoadCallback(loadMyCustomJavaScript);
</script>

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

<script src="http://www.google.com/jsapi?key=ABCDEFG" type="text/javascript"></script>
<script type="text/javascript">
  google.load("maps", "2");
  google.load("search", "1", {"callback" : loadMyCustomJavaScript});
</script>

Обновление: На основании вашего комментария вы можете попробовать использовать jQuery.getScript , который предоставляет функцию обратного вызова для (внешне) загруженного кода JavaScript. Согласно HubLog: Google, jQuery и загрузка плагинов , вам, возможно, придется использовать window.setTimeout, чтобы отложить выполнение функции до тех пор, пока у скрипта (ов) не будет / eval'd.

Поскольку jQuery и его плагины, вероятно, загружаются асинхронно, вам может потребоваться использовать ненавязчивый JavaScript вместо использования функций jQuery / plugin в HTML-коде напрямую.

...