这实际上是我做过什么。
为了确保加载特定的CSS文件,我在CSS文件的末尾添加了一个样式。例如:
#ensure-cssload-8473649 {
display: none
}
现在我有一个JavaScript函数时,上面的样式加载页面时会触发指定的回调:
var onCssLoad = function (options, callback) {
var body = $("body");
var div = document.createElement(constants.TAG_DIV);
for (var key in options) {
if (options.hasOwnProperty(key)) {
if (key.toLowerCase() === "css") {
continue;
}
div[key] = options[key];
}
}
var css = options.css;
if (css) {
body.appendChild(div);
var handle = -1;
handle = window.setInterval(function() {
var match = true;
for (var key in css) {
if (css.hasOwnProperty(key)) {
match = match && utils.getStyle(div, key) === css[key];
}
}
if (match === true) {
window.clearTimeout(handle);
body.removeChild(div);
callback();
}
}, 100);
}
}
而且这是我用上面的功能:
onCssLoad({
"id": "ensure-cssload-8473649",
css: {
display: "none"
}
}, function() {
// code when you want to execute
// after your CSS file is loaded
});
这里的第一个参数采用options
其中id
是要检查的测试风格和css属性来验证从CSS加载的内容。
如果我们不想自己加载css,这个解决方案仍然是最好的。 (例如,如果我们使用装载机) – Offirmo 2013-03-20 15:02:21