异步加载ASP.NET绑定的Javascript,然后调用回调



我有一个页面,它在加载时向端点发送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>

相关内容

最新更新