【问题标题】:Script file loaded on partial view causing error部分视图上加载的脚本文件导致错误
【发布时间】:2015-12-04 21:18:08
【问题描述】:

我有一个 mvc.net 应用程序,在某些页面上,我通过 Ajax 加载了部分视图,将已呈现给我的脚本的部分视图返回。

一切看起来都很好,但我现在面临一个问题。 在我的部分视图中,我有一个以传统方式加载的 java 脚本文件。在它之后,我正在使用该脚本定义的类

<script src="profile.js" />
<script >
  profile.init();
<script />

当我的 Ajax 调用返回此页面时,根据加载 profile.ja 所需的时间,不会调用 init 函数来说明配置文件未定义。

如果我在本地运行,脚本加载速度足够快,一切都会执行。但是在从云端加载脚本的测试环境中运行它需要更多时间并且之前执行过该函数。

有没有一种方法可以在我确定脚本已下载后才能执行。 Document.ready 不起作用,因为 Ajax 正在加载部分视图

重要的是要说,通过我们代码中的一些疯狂的东西,我不能简单地将它放在我的父页面或 _layout 任何帮助将不胜感激

谢谢!

【问题讨论】:

    标签: javascript c# asp.net-mvc


    【解决方案1】:

    您可以在布局或主视图上引用profile.js,这样您就知道在局部视图中调用它时会定义该配置文件。

    【讨论】:

    • 我不能在我的代码上这样做。我已经更新了我的问题
    【解决方案2】:

    创建一个布局页面并在该页面中呈现 js 文件,请记住在您希望加载脚本的每个其他页面中使用您的布局。

    【讨论】:

    • 我不能在我的代码上这样做。我已经更新了我的问题
    【解决方案3】:

    您可以通过在script 标记的onload 中调用profile.init() 函数来轻松完成此操作。希望这会有所帮助。

    <script onload="profile.init()" src="profile.js"></script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多