以前にアセット パイプラインにロードされていたが、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) が失敗するのでしょうか?