2

我是 MeteorJs 的新手。现在我已经安装了 Iron-route。当我打开网页的源代码时。我看到meteor注入了所有JavaScript文件并在<head>标签中编码。我的问题是,在 MeteorJs 或 Blaze 中,是否可以将此 JavaScript 编码和文件放在文件末尾?

4

3 回答 3

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 会去把这些脚本附加到头部。然后这些脚本将加载并运行。这大致相当于仅在加载了所有其他行之后才加载所有文件。

于 2014-06-08T04:02:21.453 回答
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 或其他服务器端呈现的页面那样只为一个页面执行此操作。

于 2014-05-31T07:55:51.547 回答
0

我建议将它们包含在 Layout 渲染函数中。这将仅在打印 html 后包含它们。并且您可以添加事件侦听器,当脚本中的某些内容发生变化时它们会做出反应

于 2015-03-15T10:10:19.313 回答