在DOM准备好之前,meteor加载脚本 - 脚本在meteor.startup函数中

时间:2014-10-26 19:50:59

标签: meteor jquery-selectors startup iron-router

我正在尝试使用document.querySelector(“body”),但我没有得到任何html元素。

为什么这样,我的脚本调用是在meteor.startup中?

我正在使用铁路由器进行路由...

if(Meteor.isClient){

        Meteor.startup(function(){

            myScript()

        })

    }

2 个答案:

答案 0 :(得分:0)

Meteor.startup只能在DOMContentLoaded事件之后触发。但IronRouter可能会在之后呈现内容。

尝试使用IronRouter的onAfterAction挂钩或模板的rendered callback

答案 1 :(得分:0)

我最终这样做了:

    Template.masterLayout.rendered = function(){

        myscript = myScriptJS()

    }

这在my iron router layout的.rendered方法中调用myScriptJS()。执行myScriptJS并将其分配给全局变量(myscript),因为myScriptJS是一个将对象返回到其命名空间的模块模式。

现在我可以在任何地方使用此代码:

myscript.counter()