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 に答える