Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定HTML块何时完全呈现_Javascript_Html - Fatal编程技术网

Javascript 如何确定HTML块何时完全呈现

Javascript 如何确定HTML块何时完全呈现,javascript,html,Javascript,Html,我使用AJAX调用动态地向页面添加HTML块。我需要知道元素添加到页面后的高度,但我无法获得准确的结果,因为添加的元素需要未知的渲染时间。是否有任何方法可以确保在元素在页面上完成呈现后运行某些JS。如果没有看到标记和/或代码,很难知道,但是如果您使用的是AJAX,您可能希望在.done()方法中捕获一些逻辑。请看这里: 另外,您可能想看看jQuery的承诺: DOM是同步操作的,因此当调用appendChild/append/innerHTML/etc返回时,HTML会“完全呈现” 然而,不同

我使用AJAX调用动态地向页面添加HTML块。我需要知道元素添加到页面后的高度,但我无法获得准确的结果,因为添加的元素需要未知的渲染时间。是否有任何方法可以确保在元素在页面上完成呈现后运行某些JS。

如果没有看到标记和/或代码,很难知道,但是如果您使用的是AJAX,您可能希望在
.done()
方法中捕获一些逻辑。请看这里:

另外,您可能想看看jQuery的承诺:


DOM是同步操作的,因此当调用
appendChild
/
append
/
innerHTML
/etc返回时,HTML会“完全呈现”

然而,不同步发生的是资源(即图像)的加载。因此,虽然可以在插入内容后检查该行上新插入内容的渲染高度,但该高度将不包括任何图像的高度

要解决此问题,可以显式指定图像的宽度和高度–
…');/或者别的什么
$('somediv img')。on('load',function(){
var h=$('#somediv').height();
//…并对高度做你想做的事
});

可能与负责呈现的代码重复,可能会设置一些标志。这并不完全符合犹太标准,但在附加的HTML工作之后添加一个
标记会吗?(老实说,我不知道)只要使用google chomre的“inspect element”选项来观察HTML代码,如果他正在添加来自AJAX调用结果的内容,根据定义,他已经在成功回调中做了一些事情。你是对的,@josh3736,但他没有提供任何代码来知道具体做了什么。
$('#somediv').html('... <img src="..."> ...'); // or whatever
$('#somediv img').on('load', function() {
    var h = $('#somediv').height();
    // ...and do what you will with the height
});