Rails,有条件的,包括Javascript(如果未加载)
Rails, conditional including Javascript if not loaded?
我尝试在我的 Rails 布局中包含 Javascript 文件,前提是它没有从 CDN 加载,例如在纯 Javascript 中,我会执行以下操作;
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
window.Modernizr || document.write('<script src="assets/js/modernizr.2.6.2.min.js"><'/script>');
</script>
我将如何使用 Rails 资源管线来做到这一点?
我试过了,
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
window.Modernizr || document.write('<%= javascript_include_tag "modernizr-2.6.2" %>');
</script>
但这被写成,
<script>
window.Modernizr || document.write('<script src="/assets/modernizr-2.6.2.js?body=1"></script>
然后它以某种方式进入我的身体 HTML 并离开,"');"
在我的身体标签中。因此,标签未正确关闭。
有人知道如何让它工作吗?
要实现所需的输出,请使用escape_javascript助手。
使用您的示例:
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script>
window.Modernizr || document.write('<%= j(javascript_include_tag("modernizr-2.6.2")) %>');
</script>
j()
是escape_javascript()
的别名,看起来更整洁。
希望这有帮助。
相关文章:
- javascript如果图像不存在don't加载它
- $(select).selectmenu('打开')不'如果使用ajax加载页面,则不起作用
- 如果数据为空,Ajax加载不会停止
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- 如何知道用户已经重新加载了网页,使用jquery.如果用户重新加载网页,
- 在HTML中,如果第二次加载相同的脚本文件,它还会被加载吗
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- Javascript:Google Maps API:如果地图加载在隐藏容器中,则为空白地图
- 如果iframe通过单击加载,则自动调整iframe大小无效
- 如果使用jquery在页面加载时未选择任何选项,如何禁用下拉列表
- php,如果我点击按钮程序重新加载页面,并且从不继续执行代码
- 如果可能的话,使用jQuery onLoad函数来加载特定的页面
- 如果页面加载时间超过 10 秒,如何刷新页面
- 在页面加载时显示 css(如果已选中)
- 如果有办法在 N 秒内加载未触发,则有没有办法设置 img src
- 我能确定这个页面赢了吗;如果我使用`location.replace`来更改哈希,则不会重新加载
- jQuery-检查外部页面上是否存在DIV,如果存在,则加载DIV,否则加载另一个
- 重定向页面,如果加载页面是空的Jquery
- 如果加载了localStorage数据,就警告用户
- 防止同一函数的实例,如果加载一次jquery