我正在构建一个基于 AJAX 的网站,其中所有网站内容都通过 AJAX 加载。
某些页面具有与内容一起加载的 CSS(代码如下)。加载 HTML 和 CSS 后,我会运行一些脚本来更改某些图像位置、更改宽度等。
问题是有时我的 javascript在应用 CSS 规则之前就被执行了。例如:如果我的 div 宽度根据 css 应该是 200px,有时 javascript 将其读取为 1000px,所以我得到了错误的计算。
我的研究并没有产生一个跨浏览器的解决方案,不仅可以检测加载的图像,还可以检测加载的 CSS 和其他所有内容。
我使用 jQuery 的 AJAX 函数来获取所需的 HTML(这部分工作正常)。获得 HTML 后,我将其与jQuery 的 html 函数一起应用。
完成后,我使用此代码加载所需的 css:
css = document.createElement('link');
css.rel = 'stylesheet';
css.type = 'text/css';
css.media = "all";
css.href = url;
document.getElementsByTagName("head")[0].appendChild(css);
我可以使用超时功能,但这只是盲目猜测,我想确保我的脚本在需要运行时运行。有什么建议吗?
编辑我已包含此图像以使解释更清晰