Javascript 在webkit中,在页面呈现与页面加载时发出运行脚本
我有一个使用一些元素偏移量的脚本。我打算通过以下方式启动此脚本:Javascript 在webkit中,在页面呈现与页面加载时发出运行脚本,javascript,google-chrome,webkit,rendering,Javascript,Google Chrome,Webkit,Rendering,我有一个使用一些元素偏移量的脚本。我打算通过以下方式启动此脚本: window.addEventListener('load', function() { ... } 当我使用这个方法时,所有的DOM元素都被定义了,但是偏移量值是错误的。我可以通过关闭一些css值来获得提供的偏移量。我应用了一个快速/糟糕的解决方案: window.addEventListener('load', function() { function my_func(){ ...
window.addEventListener('load', function() {
...
}
当我使用这个方法时,所有的DOM元素都被定义了,但是偏移量值是错误的。我可以通过关闭一些css值来获得提供的偏移量。我应用了一个快速/糟糕的解决方案:
window.addEventListener('load', function() {
function my_func(){
...
}
window.setTimeout(my_func, 1000);
});
这渲染了正确的偏移,但我感觉就像它的管道胶带
我上一次尝试是强制webkit渲染,但这也有错误的偏移:
window.addEventListener('load', function() {
function my_func(){
...
}
document.getElementById('wrap').style.display = 'none';
document.getElementById('wrap').style.display = 'block';
my_func();
});
有什么建议吗?或者解释为什么会发生这种情况。我测试的浏览器是Chrome
编辑:
偏移量是dom结构的一部分:
<div id="wrap">
<div>
<p>...</p>
<p>...</p>
<p>...</p>
</div>
<div>
<p>...</p>
</div>
...
</div>
...
我通过删除“#wrap div”的节点列表来访问偏移量。
如果我关闭“线高”和“字体大小”,我将获得在布局完全渲染之前计算的偏移量
在使用offsetHeight之前,调整每个p和div的行高、字体大小和显示不会产生任何影响 您应该使用
load
而不是ready
或on-page-render,因为您不知道CSS和图像何时完成加载
如果您的偏移量在
加载中不正确
则会发生其他情况。…这。。。抵消?你是怎么读的?你在哪里读的?你有没有可能使用网络字体?他们是在启动onload之前加载的吗?我发现有趣的是,超时执行会纠正偏移量。你是在动态加载其他资源吗?(更多CSS?)。我在css中使用@import作为字体。我是否应该用javaScript发出请求,这样我就可以在StatChange上启动它,或者是否有办法等待它加载。我不知道。。有?我从未使用过CSS的这个特性。