我在Meteor中加入了一个外部主题。它在body标记结束之前加载了一些脚本。当在Meteor模板的<script>
内时,<body>
标签不起作用。
主题使用js,如Bootstrap,jquery和其他各种可能的外部JS库(它也放在最后,</body>
之前。最后一个脚本就是这个custom.js
脚本就是这个特定于主题。除了常规函数语句之外的脚本内部,有两个匿名函数,顶层有两个if
块,一个$(document).ready
回调和一个$(window).load
回调。
加载脾气最少的脚本的最佳方法是什么?我试图将所有脚本移到Meteor模板的<head>
内。但是缺少一些效果。我想也许$(window).load
没有在适当的时候被调用。所以我在Template.scriptAppend.rendered
内调用它,其中scriptAppend是</body>
结尾之前的部分模板。我还移动了if
中的两个匿名函数和两个$(window).load
块。它有效,但这是一个麻烦。有没有办法让脚本保持不变?
在所有这些之前,我最初只是认为我会使用jQuery在<script>
内添加Template.scriptAppend.rendered
标签,但似乎没有效果,我不明白为什么。
所以我的问题是,(1)有没有办法让脚本保持原样;(2)Meteor <head>
何时得到处理?显然$(window).load没有在脚本预期的正确时间执行。
答案 0 :(得分:1)
有时Meteor以不同于普通Web服务器的顺序加载文件,这意味着您的功能将不会像您习惯的那样加载。在脑袋中包含外部脚本就可以了,但是你应该尝试将$(document).ready()
函数中通常包含的所有内容放在Template.templatename.rendered
函数中。这对我来说已经成功了。