我正在尝试在我的rails应用程序中加载一些JavaScript,如下所示:
Application.html.erb(在头部)
<%= javascript_include_tag 'application' %>
Application.html.erb(在HTML结束之前)
<script>
$(document).ready(function() {
notie.alert(1, "It Works", 2);
});
</script>
的application.js
//= require rails-ujs
//= require turbolinks
//= require theme/jquery
//= require theme/bootstrap
//= require theme/select2
//= require theme/notie
//= require theme/plugins
//= require theme/app
//= require_tree .
通过此设置,我收到以下错误:
TypeError: document.body is null
TypeError: notie is undefined
在我看来,错误可能是因为turbolinks以及JS如何加载资产管道,但对于我的生活,我无法弄清楚它出错的地方。任何帮助表示赞赏。
答案 0 :(得分:0)
问题似乎是你的Javascript在它存在于DOM之前调用<body>
标记。这就是你收到错误的原因:
TypeError: document.body is null
对于像这样的Javascript,最好将其加载到页面底部而不是Head。