3

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

有没有办法让这个功能在不将文件移动到头部的情况下工作?

干杯!

4

5 回答 5

2

是的,你可以用

window.onload = function() {
   //call to your function here
};

但如果您可以修改页面的底部,这个解决方案可能会更好:
停止支付您的 jQuery 税

于 2012-06-01T11:14:19.803 回答
1

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

<body onload="yourFunction()">

并在 .js 中定义它

于 2012-06-01T11:20:38.803 回答
0

是的,使用$(document).ready()将在 dom 加载后调用的函数,这样你的所有 js 函数都是已知的。

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

但您的 jQuery 文件必须在该调用之前。

如果您不想使用 jquery-这取决于您如何声明该函数。是否使用 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");
}
于 2012-06-01T11:14:54.510 回答
0
$(document).ready(function() {
   // put all your jQuery goodness in here.
 });

检查这个网址:准备好

于 2012-06-01T11:17:33.650 回答
0

如果您没有在正文 onload 事件中调用该函数,您应该能够从页面上的任何位置调用这些函数,即使这些函数位于页面底部也是如此。浏览器在加载页面时将找到的所有功能都加载到内存中,因此在页面准备好时所有功能都可用。如果找不到该功能,您要么

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

或者

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

第二种情况,检查JS控制台是否有错误。您还可以尝试将函数调用替换为包含在单独脚本标记中的另一个函数,仅输出警告消息。如果此调用有效,但对您的“真实”函数的调用无效,则 JS 代码中的某处存在错误,导致该函数无法加载。

于 2012-06-01T11:32:25.007 回答