在jQuery的document.ready之前调用/插入函数

3
我需要在jQuery的document.ready()函数被调用之前插入或调用一个函数。我从另一个文件中调用了document.ready函数,理论上这使我能够控制document.ready函数何时被调用。
源文件(.js):
$(document).ready(function () {
    // some code...
});

从技术上讲,只要我使用document.ready()调用文件,它就会立即加载,我没有找到类似于预先条件的东西来插入和调用我的函数。

测试文件(也是.js文件):

// this is a unit testing file, JsTestDriver style
TestFunction.prototype.testFunction = function() {
    // calls my function
    // then calls the document.ready function below
    $.readyList[1]();
}

由于我正在从.js单元测试文件中调用document.ready函数,因此“script”标记对我无效。 我需要在DOM(或document.ready)被调用之前能够调用我的函数。 有人知道这个问题的答案吗?

谢谢。


你能加载一个页面并重定向到另一个页面吗?这不是很好的技术,但你正在做的听起来非常笨拙。ready已经是一种在onload之前执行事物的hack了。 - SapphireSun
如果你想在DOMReady事件之前调用东西,只需不将其放在事件包装器中,或者将你的前置条件包含在在其他脚本之前的脚本中。 - Justin Johnson
2个回答

2

在文档准备好之前,将您希望执行的代码放置在 document.ready 之前。


我以前尝试过,但没有成功。在测试文件中,一旦TestFunction.prototype.testFunction开始,document.ready已经被加载(我用警报看到了它)。在源文件中不可能,因为我只调用了document.ready函数,而不是其前面或后面的代码。 - BeraCim

0
重写 ready 函数。
var fn = $.fn;
var realReady = fn.ready;
fn.ready = function ready()
{
    console.log("Before ready.");
    var result = realReady.apply(this, arguments);
    console.log("After ready.");
    return result;
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接