我有一个页面,它在加载时向端点发送AJAX调用以获取HTML,并将该HTML注入页面。该HTML包含由ASP.NET BundleConfig的@Scripts.Render()
方法生成的<script>
。这使我们能够在QA和生产中缩小Javascript,并在本地开发环境中调试Javascript
我的问题是,我需要在页面上加载外部Javascript文件,一旦加载,就从该文件中运行一个函数。通常,HTML块看起来像:
<script src="/js/file1.js" />
<script src="/js/file2.js" />
<script>
$(function(){
// function included in file2.js
myFunction();
});
</script>
我的问题是,由于页面的DOM已经加载,Jquery的ready块中的myFunction();
会立即运行;而CCD_ 4和CCD_。这显然会导致myFunction is undefined
错误。
当异步加载包含Javascript文件的HTML时,有没有一种方法可以使用ASP.NET的捆绑包?
一个简单的修复方法是使用$(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>