我有一个页面,我正在使用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/ –