我有一個頁面,我正在使用jquery/ajax從另一個組件中拉下一大塊HTML/JS並將它注入到頁面中。該HTML引用額外的JS文件,並且我需要那些被引用的JS文件在我運行我的JavaScript之前加載。遠程JavaScript加載後執行本地Javascript?
正被注入的HTML/JS看起來是這樣的:
<script type="text/javascript" src="http://myserver/js/ABunchOfStuff.js"></script>
<div>
blah blah blah
</div>
<script type="text/javascript">
//"sourceList" is defined in the ABunchOfStuff.js above, but it's not available by the time this executes.
$("input#autocomplete").autocomplete({
source: sourceList,
minLength: 2
});
</script>
通常我會只是掛鉤到一個窗口加載事件或$(文件)。就緒()或什麼,但在這如果窗口和文檔已經完全加載,現在我們會在事實之後添加更多內容。
有一種可能性是將一個遞歸setTimeout調用放到引用的javascript可用,但這很醜陋。
那麼是否有任何干淨的方式來捕獲引用的JavaScript事件已被加載,並在當時執行代碼?
感謝
你確定嗎?你擁有它的方式,直到'ABunchOfStuff.js'被下載並可用,甚至'div'都不會被渲染。 – Mrchief
你有沒有嘗試把代碼放在'$(function(){});'?所以它只在DOM準備好時才執行? http://api.jquery.com/ready/ –