如何在javascript函数中动态加载jQuery,调用另一个函数,并返回该函数's的返回值

How to dynamically load jQuery in a javascript function, call another function, and return that function's return value?

本文关键字:函数 返回 返回值 调用 javascript 动态 jQuery 加载 另一个      更新时间:2023-09-26

我有一个使用jQuery的函数。我需要用JavaScript动态地注入jQuery,并让该函数返回该函数的返回值。我想做一些类似的事情

(function(){
    var jQueryLoaded = false;
    var returnValue;
    if (!window.jQuery) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'http://code.jquery.com/jquery-1.7.1.min.js';
        script.onreadystatechange= function () {
            if (this.readyState == 'loaded' || this.readyState == 'complete')
                onJQueryLoaded();
        };
        script.onload = onJQueryLoaded;
        document.getElementsByTagName('head')[0].appendChild(script);
    }
    else {
        returnValue = myJQueryFunction();
        if (typeof(returnValue) == 'undefined')
            returnValue = true;
        return returnValue;
    }
    function myJQueryFunction() {
        // do something
    }
    function onJQueryLoaded() {
        if (jQueryLoaded)
            return;
        jQueryLoaded = true;
        var $ = jQuery;
        returnValue = myJQueryFunction();
        if (typeof(returnValue) == 'undefined')
            returnValue = true;
    }
    while (typeof(returnValue) == 'undefined'); // wait until onJQueryLoaded returns
    return returnValue;
})();

但是CCD_ 1在CCD_。

有没有办法让我的基函数等到onJQueryLoaded被调用后再返回?

试着设置一个计时器/间隔,并用它进行检查。这将满足您的需求,只要执行一个依赖于时间的回调(即加载、渲染、下载、上传)。或者把它放在jQuery本身的内部。

您需要将函数指针传递到myJQueryFunction()中。

然后可以在此方法中调用该函数。

类似的东西

function myJQueryFunction(funcPoint) {
        funcPoint();
    }
returnValue = myJQueryFunction(function() {return true;});

语法可能需要更多的研究,因为这只是我的想法。

编辑

探测更相关的场景,如

var func = function() {return true;};
...stuff......
function myJQueryFunction(funcPoint) {
        funcPoint();
    }
returnValue = myJQueryFunction(func);

更多编辑

根据我下面的评论,如果你想在JQuery加载(就绪)后激发一个函数,你就想使用JQuery就绪函数

$(document).ready(function() {do you stuff here});

Jquery Ready()

当然,你可以用类似。。。

加载jquery脚本。。。

(function() {
    if (!window.jQuery) {
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = 'http://code.jquery.com/jquery-1.7.1.min.js';
        }
})();

从这里使用jquery"onload"函数。。。

$(function() { console.log("jquery is now loaded"); });