html(通过ajax加载)加载后,如何触发一些javascript?
我通过ajax加载html,然后将html放入div中。一旦加载了放入div中的html,如何触发javascript 我不知道onload事件是否就是我要寻找的,或者它是否可以用于div元素。请记住,此html将异步放入div中 编辑: html有一个嵌入的youtube视频,因此它必须加载一个图像 加载放入div的html后,如何触发javascript 您只需在将上下文放入div后,在html(通过ajax加载)加载后,如何触发一些javascript?,javascript,html,ajax,onload,Javascript,Html,Ajax,Onload,我通过ajax加载html,然后将html放入div中。一旦加载了放入div中的html,如何触发javascript 我不知道onload事件是否就是我要寻找的,或者它是否可以用于div元素。请记住,此html将异步放入div中 编辑: html有一个嵌入的youtube视频,因此它必须加载一个图像 加载放入div的html后,如何触发javascript 您只需在将上下文放入div后,在XMLHttpRequest提供的onreadystatechange回调(或您正在使用的任何库提供的“c
XMLHttpRequest
提供的onreadystatechange
回调(或您正在使用的任何库提供的“completion”回调)中执行此操作
例如:
你的意思是当你把html放在一个div中时,你想知道什么时候加载图像和类似的内容。我想OP已经知道了这一点,因为他可以把结果放在div中。如果XMLHttpRequest响应包含类似字符串的内容呢?它被放入DOM中。即使执行了XMLHttpRequest完成回调,此时也不会加载内容。如果OP正在处理图像,并且需要等待它们完成加载,那么这肯定是一个问题。问题并没有说明这一点。(这可能只是问题的一个失败。)我认为问题在第一点上还可以。OP没有询问如何知道XMLHttpRequest何时响应。@MattiMehtonen:我现在已经解决了图像问题。
var xhr = new XMLHttpRequest(/* ... */);
// ...
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status >= 200 && xhr.status <= 299) {
/* ...put the content in the div...*/
/* ...call your function... */
}
};
xhr.send();
var images = div.querySelectorAll('img'),
img, i, done = false;
for (i = 0; i < images.length; ++i) {
img = images[i];
img.onload = img.onerror = checkDone;
}
checkDone();
function checkDone() {
var x, completed = 0;
if (done) {
return;
}
for (x = 0; x < images.length; ++x) {
if (images[x].complete) {
++completed;
}
}
if (completed === images.length) {
done = true;
/* ...call your "load" function here... */
}
}