-1

我有一个页面,在加载时,它会向端点发送 AJAX 调用以获取 HTML 并在页面上注入该 HTML。该 HTML 包含<script>由 ASP.NET BundleConfig 的@Scripts.Render()方法生成的 s。这使我们能够在 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 已经加载,myFunction();在 Jquery 的就绪块中立即运行;一直在file1.js加载file2.js。这显然会遇到myFunction is undefined错误。

在异步加载包含 Javascript 文件的 HTML 时,有没有办法使用 ASP.NET 的捆绑包?

4

1 回答 1

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>
于 2016-04-08T23:13:05.720 回答