脚本访问内联javascript变量

scripts access to inline javascript variables

本文关键字:javascript 变量 访问 脚本      更新时间:2023-09-26

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

即在MasterPage的顶部有一个脚本块。Master Body

<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,当时间线脚本中的行被击中时,会显示以下错误。

未捕获引用错误:promoteSuggestionID未定义(匿名函数)

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

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

把你的函数改成一个定义,然后把它连接起来,在document.ready上调用。这是正确的方法,你可以保证DOM和所有引用的JS在这一点上都很好。