我是MeteorJs的新手。现在我已经安装了铁路。当我打开网页的源代码时。我看到meteor在<head>
标签中注入了所有JavaScript文件和编码。我的问题是,在MeteorJs或Blaze中,是否可以将此JavaScript编码和文件放在文件末尾?
答案 0 :(得分:2)
我猜你想要将JS文件和脚本标记放在页面底部,因为你希望这些文件和脚本标签最后加载(也就是在DOM完全加载之后)。
假设在普通的html文件中,底部有这些脚本:
<script type="text/javascript" src="assets/js/slider_revolution.js"></script>
<script type="text/javascript" src="assets/js/more-animations.js"></script>
<script type="text/javascript" src="assets/js/animations.js"></script>
只有在加载了它上面的每一行之后才会加载它们。
在Meteor中,我所做的是这样的:
Template.templateName.rendered = function() {
$('head').append('<script type="text/javascript" src="assets/js/slider_revolution.js"></script>');
$('head').append('<script type="text/javascript" src="assets/js/animations.js"></script>');
$('head').append('<script type="text/javascript" src="assets/js/more-animations.js"></script>');
}
因此,在将模板渲染到页面上之后,Meteor将继续将这些脚本附加到头部。然后这些脚本将加载并运行。这大致相当于只有在加载了每一行之后才加载所有文件。
答案 1 :(得分:0)
您可以使用某些东西在文件末尾注入脚本代码。虽然我不确定这个的原因吗?
Meteor通常会在客户端呈现页面,因此无论是将文件放在<head></head>
还是放在</body>
您可以将代码放入<head>..</head>
或使用此类代码注入(可能在Meteor.startup中或当您知道自己的身体已被绘制时):
var my_awesome_script = document.createElement('script');
my_awesome_script.setAttribute('src','http://example.com/site.js');
document.body.appendChild(my_awesome_script);
在Meteor中执行此操作时如果您决定在</body>
结束之前将其放在客户端,那么一旦添加它就不必再添加它(所有页面都是在需要时在客户端上呈现)因此您不会像使用PHP或其他服务器端呈现页面那样在一个页面上执行此操作。
答案 2 :(得分:0)
我建议将它们包含在布局渲染函数中。这将仅在打印html之后包含它们。并且您可以添加事件监听器,当脚本中出现问题时它们会做出反应