10

以前にアセット パイプラインにロードされていたが、A/B テストのためにパーシャルに抽出する必要があった関数の一部を削除するときに、今日予期していなかったことに遭遇しました。

私は bigVideo.js ライブラリを使用して、ページにフルスクリーンのビデオをロードしています。コードをパーシャルに抽出したところ、今日 BigVideo.js が間違ったディメンションをロードし始めました。残りの JavaScript アセットの下にある部分的なロード。

以前は、通常のアセット パイプライン内の匿名関数にコードをカプセル化していました。

元のコード (動作)

$(function () {
  (function () {
  var bgVid = new $.BigVideo({useFlashForFirefox: false})
  bgVid.show('http://videourl.com', { ambient : true });
  }();
});

次に、パーシャルで呼び出せるように、この equal 変数を設定しようとしました。正しいサイズを使用せずにビデオの読み込みが開始されました。

$(function () {
  var initVid = function () {
  var bgVid = new $.BigVideo({useFlashForFirefox: false})
  bgVid.show('http://videourl.com', { ambient : true });
  };

部分的に:

$(function () {
  initVid();
});

DOM ディメンションが完全にロードされていない状態で何かが起こっているように見えたので、関数を次のように切り替えてみました。

部分的に:

$(window).load(function () {
  var bgVid = new $.BigVideo({useFlashForFirefox: false});
  bgVid.show('http://videourl.com', { ambient : true });
});

まだ運がありません。

最後に、window.onload を使用することにしました

window.onload = function () {
  var bgVid = new $.BigVideo({useFlashForFirefox: false})
  bgVid.show('http://videourl.com', { ambient : true });
};

できます?!では、window.onload は正常に動作しているように見えるのに、なぜここで $(window.load) が失敗するのでしょうか?

4

1 に答える 1