Так что я пытаюсь получить анимацию Edge через jQuerys $ .getScript(), которая совпадает с вызовом $ .ajax с типом dataType: script.Как загрузить анимацию края с помощью вызова AJAX? jquery getScript не работает
Теперь, если я включаю скрипт с тегом скрипта, он работает нормально, но когда я пытаюсь загрузить и выполнить скрипт через $ .getScript(), ничего не происходит. (Я не получаю никаких ошибок, и скрипт и суб-скрипты загружаются в порядке, но ничего не происходит.)
Неужели кто-нибудь пытался это сделать раньше? Я подозреваю, что у меня проблемы с загрузкой через AJAX, потому что Adobe использует yepnope в page_a_edgePreload.js.
Я использовал простой пример, который я нашел из Adobe Edge для тестирования. Если вы хотите попробовать его на месте - открыть редактор и сохранить следующие в wrapper.html файл:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>Edge always wanted to be a Wrapper</title>
<style>
.edgeLoad-PAGE_A { display:none; }
</style>
<script src="edge_includes/jquery-1.7.1.min.js"></script>
</head>
<body style="margin:0;padding:0;">
<H1>WRAPPER.HTML</H1>
<div id="content" class="PAGE_A">
<p>EDGE animation composition should appear beneath me!</p>
</div>
<script type="text/javascript">
$.getScript("page_a_edgePreload.js", function(data, textStatus, jqxhr) {
//console.log(data); //data returned
console.log(textStatus); //success
console.log(jqxhr.status); //200
console.log('Load was performed.');
});
</script>
<!--uncomment script below to see that it works if included regulary -->
<!--<script src="page_a_edgePreload.js"></script>-->
</body>
</html>
А затем загрузить пример .zip файл из Adobe здесь: http://blogs.adobe.com/edge/files/2012/05/an15BootStrapExample.zip
Extract следующий в ту же папку, что wrapper.html: папка
- edge_includes
- page_a_edge.js
- page_a_edgeActions.js
- page_a_edgePreload.js
EDIT
Ok, поэтому я попытался загрузки файлов без прохождения edgePreloader.js как предложил Алекс. Я получаю доступ к AdobeEdge, но он возвращает неопределенное значение, если я пишу из композиции после успешной загрузки скриптов:
var comp = window.AdobeEdge.getComposition("PAGE_A");
var stage = comp.getStage();
console.log("Stage: " + stage);
(я также попытался это с SetTimeout() функция - еще же результат)
Следующее прекрасно работает, если я включить сценарий в обычном <script src="..edgePreloader.js"></script>
теге
setTimeout(function() {
// Try getting the edge composition after 2 seconds
var comp = window.AdobeEdge.getComposition("PAGE_A");
var stage = comp.getStage();
console.log("Stage: " + stage);
}, 2000);
я замечаю, что Adobe использует затворы на edgePreload.js, кажется, что я должен загрузить edge.1.5.0.js внутри этого замыкания. Теперь я пытаюсь понять, какие события и функции необходимы в этом закрытии, чтобы заставить его работать.
Должно быть, был устал вчера, потому что то, что я пробовал с bootstrapCallback, не работало - просто я забыл прокомментировать внизу. Я продолжу пытаясь решить эту проблему. –