-1

У меня есть страница, которая при загрузке отправляет вызов AJAX конечной точке для получения HTML и вводит этот HTML-код на странице. Этот HTML содержит <script> сгенерированный методом ASP.NET BundleConfig @Scripts.Render(). Это позволяет нам минимизировать Javascript в QA, а также готовить и отлаживать готовый Javascript в нашей локальной среде разработчиков.Загрузка ASP.NET в комплекте Javascript asyncronosly, а затем вызов обратного вызова

Моя проблема в том, что мне нужно загрузить внешние файлы Javascript на странице и после загрузки загрузить функцию из этого файла. Как правило, HTML фрагмент будет выглядеть следующим образом:

<script src="/js/file1.js" /> 
<script src="/js/file2.js" /> 
<script> 
    $(function(){ 
     // function included in file2.js 
     myFunction(); 
    }); 
</script> 

Моя проблема с этим, так как был загружен DOM страницы, добавьте myFunction(); в готовом блоке Jquery в запускается немедленно; все пока file1.js и file2.js все еще загружаются. Очевидно, что это ошибка myFunction is undefined.

Есть ли способ использовать пакеты ASP.NET при асинхронной загрузке HTML, который содержит файлы Javascript?

ответ

1

простое исправление будет использовать $(window).load()

$(document).ready() пробегов в последовательности, когда она появляется в коде.

$(window).load() будет работать после того, как все будет загружено, поэтому вы можете попробовать это вместо того, чтобы пытаться понять сложный путь - как это должно работать. - просто предложение.

<script src="/js/file1.js" /> 
<script src="/js/file2.js" /> 
<script> 
    $(window).load(function(){ 
     // function included in file2.js 
     myFunction(); 
    }); 
</script> 
+0

Мне нравится идея. Я попробую. –

+0

jQuery обычно сохраняет день, когда ваш ум перегружен сложными идеями overkill! дайте мне знать, если это поможет @FillipPeyton –

+0

Кажется, что не работает. Я думаю, потому что окно уже загружено и потому, что обработчик события создается после загрузки «окна», обработчик не попадает. –