google.load custom js
Я использую Google AJAX API Как я могу загрузить пользовательский JS, который зависит от библиотек, загруженных AJAXAPI?
1 ответ
Вы можете определить функцию, которая вставляет объект сценария в 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-коде напрямую.