在没有jQuery的情况下通过AJAX加载html元素后,如何在javascript中执行函数?

在没有jQuery的情况下通过AJAX加载html元素后,如何在javascript中执行函数?,javascript,html,ajax,Javascript,Html,Ajax,我需要在页面的一部分通过AJAX加载后执行给定的javascript函数。我无法控制页面的加载方式,因此从页面触发事件不是一个选项,我想我需要检查我需要的元素的主体,并在该元素存在后执行 我看到我可以使用jQuery“.on”方法来实现这一点,但我的jQuery版本是在引入此功能之前的版本,所以我不能使用它。不使用第三方库的最佳方法是什么 下面是一个使用jQuery的示例: //bind to the body a "load" handler for elements that have cl

我需要在页面的一部分通过AJAX加载后执行给定的javascript函数。我无法控制页面的加载方式,因此从页面触发事件不是一个选项,我想我需要检查我需要的元素的主体,并在该元素存在后执行

我看到我可以使用jQuery“.on”方法来实现这一点,但我的jQuery版本是在引入此功能之前的版本,所以我不能使用它。不使用第三方库的最佳方法是什么

下面是一个使用jQuery的示例:

//bind to the body a "load" handler for elements that have class names of "hello"
$('body').on('load','.hello',function(){
  alert("Hello is fully loaded, proceed with your program logic");
})

附言:我在发布这篇文章之前读过的相关问题

您可以创建一个在加载元素时调用的函数,以及另一个检查元素是否按间隔加载的函数。然后将负载检查功能附加到车身的
onload
属性。例如:

<body onload="checkLoaded()">

<script type="text/javascript">
    var afterLoaded = function() {
        // code to execute once elements are in place
        console.log("Elements loaded.");
    };

    var checkLoaded = function() {
        var interval = setInterval(function() {
            if(document.getElementsByClassName("hello").length) {
                clearInterval(interval);
                afterLoaded();
            }
        }, 1000);
    };
</script>

var afterLoaded=函数(){
//元素就位后执行的代码
log(“加载的元素”);
};
var checkload=函数(){
var interval=setInterval(函数(){
if(document.getElementsByClassName(“hello”).length){
间隔时间;
后加载();
}
}, 1000);
};

您使用的是哪个版本的jquery?body onload与ajax加载事件或DOM Ready不同。@smerny
如果没有jquery,您将在这种情况下使用ajax调用的“成功”回调。@ElmoVanKielmo,OP说他使用的是旧版本的jquery,可能会说“没有jquery”只是因为他没有意识到仍然使用jquery有一种不同的方法来实现它。有点像这样。但这不是只执行一次吗,当尸体完成装载时?我需要它一直检查,直到通过AJAX加载“hello”元素。如果这持续检查不止一次,它就解决了我的问题。是这样吗?@ThiagoMoraes,如果你想在每次ajax成功完成时都发生一些事情。。。为什么不在ajax上使用回调?@smerny,因为我不控制网站。我只是在那里插入了一个javascript标记,无法访问他们这方面的任何内容。确实会容易得多,但在我的情况下不起作用:(没有一种非常有效的方法来满足您的要求,但有一些方法。您可以使用我发布的相同函数,将其包装在
setInterval()
中,当您找到可以使用的元素时,
clearInterval()
@sxnine我想我要走setInterval的路。考虑到我现有的局限性,似乎还不算太糟。。。