0

http://www.phpied.com/when-is-a-stylesheet-really-loaded/

このソリューションの使用は、Chromeを除いて、コールバックを使用してスタイルシートをロードするのに最適です。

Chrome(v18)でも、CSSが適用されているのを確認できます。これにより、動的に読み込まれるCSSの高さと幅の設定に依存する他の機能が台無しになります。

何か案は???

ありがとう!

4

1 に答える 1

2

WebKitでは、document.styleSheetsへの変更をポーリングできます。これは、lazyloadでそれを行う関数です(https://github.com/rgrove/lazyload/blob/master/lazyload.jsから取得) 。

または、そのプラグインを使用してjsも実行します:)

function pollWebKit() {
    var css = pending.css, i;

    if (css) {
      i = styleSheets.length;

      // Look for a stylesheet matching the pending URL.
      while (--i >= 0) {
        if (styleSheets[i].href === css.urls[0]) {
          finish('css');
          break;
        }
      }

      pollCount += 1;

      if (css) {
        if (pollCount < 200) {
          setTimeout(pollWebKit, 50);
        } else {
          // We've been polling for 10 seconds and nothing's happened, which may
          // indicate that the stylesheet has been removed from the document
          // before it had a chance to load. Stop polling and finish the pending
          // request to prevent blocking further requests.
          finish('css');
        }
      }
    }
  }
于 2012-04-13T21:44:44.417 に答える