javascript - 脚本访问内联 JavaScript 变量

标签 javascript jquery asp.net webforms

是否有在加载外部脚本之前刷新或注册内联变量的方法?

即在 MasterPage.Master Body 顶部有一个脚本 block

<script type="text/javascript">
  var promoteSuggestionID = "<%= SuggestionID %>";
</script>

页面正文底部的捆绑脚本。

  <%: Scripts.Render("~/scripts/Timeline") %>

时间线脚本

(function (TimeLine) {
   TimeLine.PromoteSuggestion = promoteSuggestionID;
 //....Main body of script

}((window.TimeLine) ? window.TimeLine : (window.TimeLine = {})));

使用 Chrome,当点击时间线脚本中的行时,会显示以下错误。

未捕获的ReferenceError:promoteSuggestionID未定义(匿名函数)

之前我们通过现代化器加载时间线脚本。当我使用 chrome 时,如果我在 Timeline.PromotedSuggestion 代码上放置断点,我可以看到 default.aspx 代码设置了 PromotionSuggestionID。好像这个脚本 block 还没有注册,有没有办法设置优先级?

最佳答案

正是出于这个原因,你真的不应该让 JavaScript 仅仅在页面上这样运行。我的意思是,如果我的 JavaScript 会在解析后执行,那么我无法保证它何时会执行。而且,根据浏览器、页面顺序等,它很可能在所有内容完全加载之前运行。

将您的函数更改为只是一个定义,并将其连接起来以便在 document.ready 上调用。这是正确的方法,您可以保证 DOM 和所有引用的 JS 都可以正常运行。

关于javascript - 脚本访问内联 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28809529/

相关文章:

javascript - AngularUI-Bootstrap 的 Typeahead 无法读取 `length` `undefined` 的属性

javascript - Bootstrap 中的轮播

javascript - JQuery Mobile 选择框不起作用

javascript - 需要 jQuery 方法在按钮单击后重定向 - ASP.NET、VB.NET、jQuery、Javascript

jquery - 使用 jQuery Ajax 跨域调用 ASP Web API

javascript - 未解析的函数或方法 on()

c# - 如何检查 Youtube 视频何时在 C# 中播放完毕?

javascript - 首次使用后如何触发 Google Places 自动完成结果下拉列表?

javascript - jQuery.ajax - 为什么它不起作用?

javascript - ReadDataURL - 图像未使用 jquery 在 Firefox 中加载