▽1
●
a-kuma3 ●200ポイント ベストアンサー |
こちらが参考になると思います。
http://os0x.hatenablog.com/entry/20090829/1251556449
Tumblr 専用で良いのであれば、AutoPagerize の addFilter を使う方法かな?
$(document).ready(function() { // 質問にあったコードから、$(document)ready で実行する部分を切り出してます var change_video_size = function(ctx) { // jQuery 関数で、第2引数 (context) を追加してます $('div.video', ctx).each(function() { $(this).contents().each(function() { // 省略 ... }); }); }; // まず、ページ読込が完了したら、一回実行 change_video_size(document); // AutoPagerize のフィルターにも、サイズ変更の関数を登録する if (window.AutoPagerize) { window.AutoPagerize.addFilter(function(docs) { for (var i = 0 ; i < docs.length ; ++i) { change_video_size(docs[i]); } }); } });
$(document).ready(function() { var change_video_size = ... change_video_size(document); // と、ここまでは、前と同じ // DOMNodeInserted のイベントを監視する if (tumblrAutoPager) { tumblrAutoPager.pp.addEventListener('DOMNodeInserted',function(evt){ change_video_size(evt.target); }, false); } });
どんな要素が追加されるのか、よく分からないのですけれど、本当は条件を付けて絞り込んだ方が良いのかも。
tumblrAutoPager.pp は、ページを挿入する先の要素が入っているはずです(ソースを読み違えていなければ)。
$(document).ready(function() { var change_video_size = ... change_video_size(document); // と、ここまでは、前と同じ // DOMNodeInserted のイベントを監視する if (tumblrAutoPager) { function add_ev() { if (tumblrAutoPager.pp) { tumblrAutoPager.pp.addEventListener('DOMNodeInserted',function(evt){ change_video_size(evt.target); }, false); console.log("※ DOMNodeInserted listener added !"); } else { setTimeout(add_ev, 0); } } setTimeout(add_ev, 0); } });
addEventListener に成功すると、ログに一行出力するようにしてます。
ページの読み込みが完了して、ちょっと経つと、そのログが出てるはずです(出て欲しい)。
その後に、二ページ目を表示するとどうなるでしょうか?
# 何度もすみません (^^ゞ