0

我有以下函数,当相应的 HTML 也注入页面时,它会在样式表中动态加载。

这一切都很好。注入的 html 是隐藏的,一旦它的样式表被加载,它就会被设置为可见。

function _addCssFile(filename, fragment) {

                var stylesheet = doc.createElement("link");
                stylesheet.setAttribute("rel", "stylesheet");
                stylesheet.setAttribute("type", "text/css");
                stylesheet.setAttribute("href", filename);
                doc.getElementsByTagName("head")[0].appendChild(stylesheet);

            stylesheet.onload = function(){
                fragment.setAttribute("style", "visibility:visible;");
            }          
}

但是,有可能一段 html 有多个要注入的 css 文件,因此我需要能够检测到数组中的所有 css 文件何时已成功注入 DOM。

上面的函数针对每个包含的 css 文件运行,一旦注入了整个样式表数组,我将如何触发事件?如您所见,注入的 html 当前将设置为对于第一个加载的样式表可见,并且对于每个后续文件再次设置为可见。

4

1 回答 1

3

有一个柜台。对于添加的每个 CSS 文件,递增计数器。对于每个加载的 CSS 文件,将其递减。如果在添加所有 CSS 文件后计数器达到零,则它们已全部加载。

于 2012-07-09T11:05:28.653 回答