我有一个Web用户控件,最后包含了这个脚本。
<script>
require(['modules/product'], function (_s) {
new _s();
});
</script>
加载product.js文件,product.js定义如下
define(["jquery", "async!https://maps.googleapis.com/maps/api/js?key=something", "validate", "validate.add"],function ($) {--some code---}
我有一个母版页或包含这些脚本的基页
<%if (Sitecore.Context.PageMode.IsNormal ){ %>
<script type="text/javascript" src="/js/vendor/modernizr.js"></script>
<script type="text/javascript" src="/js/vendor/require.js"></script>
<script type="text/javascript" src="/js/main.js"></script>
<%} else { %>
<script>
function require() { };
function define() { };
</script>
RequireJS配置就像这样
require.config({
baseUrl: "/js",
waitSeconds: 0,
paths: {
async: 'vendor/async',
jquery: 'vendor/jquery-1.11.3.min',
'jquery.ui': 'vendor/jquery-ui',
dropdown: 'vendor/dropdown',
sharebutton: 'vendor/buttons',
tooltip: 'vendor/tooltip',
easyzoom: 'vendor/easyzoom',
validate: 'vendor/jquery.validate.min',
'validate.add': 'vendor/additional-methods',
swipe: 'vendor/jquery.touchSwipe',
browser: 'modules/browser',
moment: 'vendor/moment'
}
});
但是这个product.js文件最初没有加载,但是在手动刷新页面后工作正常。
任何帮助将不胜感激。我是requirejs或脚本语言的新手。
答案 0 :(得分:-1)
尝试写:
<script>
$(window).load(function() {
require(['modules/product'], function (_s) {
new _s();
});
}
</script>
它应该等待加载相关的js(参见这个问题的答案:Script working only on page reload)。 我希望这有帮助!