Jquery 确定javascript函数是否已经运行

Jquery 确定javascript函数是否已经运行,jquery,function,Jquery,Function,我希望能够在从脚本加载div后触发一些代码 我无法访问该脚本,因为它是从第三方加载到网站上的 如何在第三方函数运行后启动函数 e、 g 或 谢谢。你真好。你可以在这里用一个。基本上,我们在主体中添加一个侦听器。无论何时添加或删除节点,侦听器都会返回报告。发生这种情况时,请检查是否添加了节点。来自MDN的更多信息: 请注意,我传递了参数{childList:true}告诉观察者,我们只关心身体子节点的更改,而不关心其他更改,例如属性的更改。对于那些不需要IE的情况,您可以使用JavaScript对

我希望能够在从脚本加载div后触发一些代码

我无法访问该脚本,因为它是从第三方加载到网站上的

如何在第三方函数运行后启动函数

e、 g


谢谢。

你真好。你可以在这里用一个。基本上,我们在主体中添加一个侦听器。无论何时添加或删除节点,侦听器都会返回报告。发生这种情况时,请检查是否添加了节点。来自MDN的更多信息:


请注意,我传递了参数
{childList:true}
告诉观察者,我们只关心身体子节点的更改,而不关心其他更改,例如属性的更改。

对于那些不需要IE的情况,您可以使用JavaScript对代码完成做出反应:

$(函数(){
//从第三方库获取信息(以moment.js为例)
函数momentGetFromNow(){
var m=时刻(新日期(2016,0,1));
var d=Date.now();
返回新承诺(功能(解决、拒绝){
决议(m.from(d));
});
}
//第三方承诺解决方案后更新用户界面的功能
函数updateUI(值){
$(“#测试”)。文本(值);
}
//momentGetFromNow返回一个我们可以响应的承诺对象
var p=momentGetFromNow();
//对第三方函数包装完成作出反应
p、 然后(函数(结果){
更新(结果);
}).catch(函数(原因){
log('moment.js调用失败:'+原因);
});
});


如果您知道要追加的内容,您可以一直检查该项是否包含追加的HTML,直到它包含为止。如果您知道将在何处加载div,您可以尝试使用。如果可能的话,我宁愿不使用setInterval或setTimeout。这非常有效!非常感谢。我将不得不学习更多关于这个变种观察者的东西。看起来很有用。还有一个问题,有没有其他方法可以兼容IE的较低版本?像IE9和更高版本一样,MutationObserver的MDN链接到MutationEvents,这是被MutationObserver取代的不推荐的API。您可以像使用普通事件侦听器一样使用它们。它们在IE9+中工作,但支持是不可靠的,我现在还不知道具体细节,您必须进行反复试验
function threeParty(){
    //I have no access to this code
    $('body').append('<div id="testDiv"></div>');
}

function myFunction(){
     $('#testDiv').html("TEST");
}
threePart.done(function(){
  myFunction();
});
$('#testDiv').load(function(){
  myFunction();
});
//make the observer
var observer = new MutationObserver(
    //callback function, it gets triggered when anything mutates
    function (mutations) {
        mutations.forEach(function (mutation) {
            //see if the nodes mutated (something was appended)
            if (mutation.type === "childList") {
                //then the com changed. see if it has our element
                if ($('#testDiv').length > 0) {
                    //then the div was appended. do something!
                    myFunction();
                    //optionally, disconnect the observer if we're done listening
                    observer.disconnect();
                } //else, do nothing
            }
    });
});

//above, we made the observer. now, tell it to start observing `body`:
observer.observe(document.getElementsByTagName('body')[0], {childList: true});