脚本访问内联 javascript 变量
scripts access to inline javascript variables
是否有在加载外部脚本之前刷新或注册内联变量的方法?
即在 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 当点击时间线脚本中的行时会显示以下错误。
未捕获的 ReferenceError:未定义 promoteSuggestionID(匿名函数)
之前我们是通过 modernizer 加载时间线脚本。当我使用 chrome 时,如果我在 Timeline.PromotedSuggestion 代码上放置断点,我可以看到 default.aspx 代码设置了 promotedSuggestionID。好像这个脚本块还没有注册,有没有办法设置优先级?
出于这个原因,您真的不应该像这样在 运行 页面上使用 JavaScript。我的意思是,如果我有 JavaScript 将在解析时执行,那么我无法保证它何时执行。而且,根据浏览器、页面顺序等,它很可能 运行 在所有内容完全加载之前。
将您的函数更改为只是一个定义,并将其连接起来以便在 document.ready 上调用。这是正确的方法,你可以保证 DOM 和所有引用的 JS 在那个时候都可以正常运行。
是否有在加载外部脚本之前刷新或注册内联变量的方法?
即在 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 当点击时间线脚本中的行时会显示以下错误。
未捕获的 ReferenceError:未定义 promoteSuggestionID(匿名函数)
之前我们是通过 modernizer 加载时间线脚本。当我使用 chrome 时,如果我在 Timeline.PromotedSuggestion 代码上放置断点,我可以看到 default.aspx 代码设置了 promotedSuggestionID。好像这个脚本块还没有注册,有没有办法设置优先级?
出于这个原因,您真的不应该像这样在 运行 页面上使用 JavaScript。我的意思是,如果我有 JavaScript 将在解析时执行,那么我无法保证它何时执行。而且,根据浏览器、页面顺序等,它很可能 运行 在所有内容完全加载之前。
将您的函数更改为只是一个定义,并将其连接起来以便在 document.ready 上调用。这是正确的方法,你可以保证 DOM 和所有引用的 JS 在那个时候都可以正常运行。