底部的Javascript,函数调用在体内?

时间:2012-06-01 11:13:08

标签: javascript jquery document onload

只是一个简单的问题,我正在遵循在关闭正文之前将所有Javascript文件保留在文档底部的做法。但是我想在主体中调用一个函数,它将出现在JS include之前,因此失败。

无论如何都可以在不将文件移动到头部的情况下使用此功能吗?

干杯!

5 个答案:

答案 0 :(得分:1)

是的,你可以用

包装你的功能
window.onload = function() {
   //call to your function here
};

但如果您可以修改页面的底部部分,则可能此解决方案更好:
Stop paying your jQuery tax

答案 1 :(得分:1)

$(document).ready(function() {
   // put all your jQuery goodness in here.
 });

检查此网址:ready

答案 2 :(得分:1)

您也可以从html文档中调用您的函数:

<body onload="yourFunction()">

并在.js中定义

答案 3 :(得分:0)

是的,使用在加载dom后调用的$(document).ready()函数,以便知道所有js函数。

$(function(){
  //do stuff here
}

但是你的jQuery文件必须在那次调用之前。

如果你不想使用jquery-这取决于你如何声明这个功能。如果使用var或不使用var之间存在差异。看看这个样本:

function FunctionDefinitionOrder() {
    assert(isRed(), "Named function definition doesn't matter");        
    assert(isGreen === undefined, "However, it's not the case with anonymous functions");

    function isRed() { return true; }
    var isGreen = function () { return true; };

    assert(isGreen(), "Anonymous functions are known only after the definition");
}

答案 4 :(得分:0)

如果你没有在body onload事件中调用该函数,你应该能够从页面的任何地方调用这些函数,即使这些函数位于页面底部。浏览器在加载页面时加载发现的所有内容,因此当页面准备就绪时,所有功能都可用。如果找不到该功能,您可以

  • 在调用它时拼写错误的函数名称(不太可能)

  • 包含要调用的函数的脚本标记之间的JS中存在错误

在第二种情况下,检查JS控制台中是否有任何错误。您还可以尝试将函数调用替换为单独的脚本标记中包含的另一个函数,只输出警报消息。如果这个调用有效但是对你的“真实”函数的调用没有,那么JS代码中的某个地方就会出现一个错误,导致无法加载该函数。