我正在使用“ https://developers.facebook.com/docs/plugins/comments/” JavaScript SDK在我的应用程序中加载评论。 现在,我的问题是我无法跟踪评论iframe中的加载更多点击事件。我需要跟踪功能,以根据单击“加载更多”按钮事件后加载的评论div高度来设置父div高度。
答案 0 :(得分:0)
我尝试了不同的解决方案,并使用“ https://jsfiddle.net/vb4xgcmo/”上提供的修改后的代码找到了一个工作示例。
window.fbAsyncInit = function () {
FB.Event.subscribe( 'xfbml.render', function ( response ) {
if ( $( '.fb-comments' ).length > 0 ) {
if ( $( '.fb-comments iframe' ).length > 0 ) {
iframeClickTracking( $( '.fb-comments iframe' ) );
}
}
} );
}
function iframeClickTracking( elm ) {
elm.bind( 'mouseover', function () {
console.log( 'in' );
onIframeHeightChange( elm, function () {
$( '#section_1' ).css( 'height', $( '#fbv' ).height() );
} );
} );
elm.bind( 'mouseout', function () {
// If they leave the ad, then they aren't going to click. Kill the run event for resize.
setTimeout( function () {
if ( elm.onIframeHeightChange ) {
$( '#section_1' ).css( 'height', $( '#fbv' ).height() );
clearTimeout( elm.onIframeHeightChange );
}
}, 1000 );
} );
}
function onIframeHeightChange( elm, callback ) {
var lastHeight = elm.height(), newHeight;
(function run() {
newHeight = elm.height();
if ( lastHeight != newHeight ) {
callback();
}
lastHeight = newHeight;
if ( elm.onIframeHeightChange ) {
clearTimeout( elm.onIframeHeightChange );
}
elm.onIframeHeightChange = setTimeout( run, 1000 );
})();
}