javascript - 在 head 中加载 modernizr 但在 require.js 中使用它

标签 javascript requirejs modernizr

我想在 head 中同步加载 modernizr 以防止出现焦点。我在/body 之前使用 require.js 来加载一些其他脚本,我想在其中使用 modernizr 进行特征检测等。

这样做的正确方法是什么,或者是否建议这样做? 如果我在我的脚本中需要 modernizr,它会再次加载,如果我不需要,它是未定义的。

提前致谢。 :)

最佳答案

如果 Modernizr 是加载到 head 中的第一个脚本,那么它可以从任何地方访问,因此您可以像这样定义简单的包装器:

define('modernizr', function () { return window.Modernizr });

这段代码可以像这样放在 wrappers.js 中:

<head>
<script src="/js/vendor/modernizr.js"></script>   
<script src="/js/vendor/require.js"></script>  
<script src="/js/wrappers.js"></script>  
<script src="/js/main.js"></script>
</head>

然后在 main.js 中

var scripts = document.getElementsByTagName('script')
  , src = scripts[scripts.length - 1].src
  , baseUrl = src.substring(src.indexOf(document.location.pathname), src.lastIndexOf('/'))

require.config({
  baseUrl: baseUrl
})

关于javascript - 在 head 中加载 modernizr 但在 require.js 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16279860/

相关文章:

javascript - 获取掉落到输入元素时的值更改事件

javascript - Angular 和 requirejs 错误

jquery - 用于最佳移动和桌面体验的 UI 控制

css - Modernizer JS 媒体查询检查。加载/卸载

javascript - jquery .html()函数没有给出数据属性设置值

javascript - 通过 Web 应用程序在客户端存储用户偏好的标准方法

javascript - 通过 jQueryUI 传递时不显示 html 实体

requirejs - 在测试中 : Make sure all JS is loaded with requirejs

javascript - RequireJS 使用多个数据主体

jquery - Modernizer 特征检测