Комментарий FB «загрузить еще 10 комментариев» кнопка вызова вызова окна изменения размера события не работает - PullRequest
0 голосов
/ 07 февраля 2019

Я использую "https://developers.facebook.com/docs/plugins/comments/" javascript SDK для загрузки комментариев в мое приложение. Теперь моя проблема в том, что я не могу отслеживать загрузку большего количества событий клика внутри комментария iframe. Мне нужно отслеживать функциональность, чтобы установить родительский divвысота в соответствии с высотой комментариев, которая загружается после нажатия кнопки «Загрузить еще».

1 Ответ

0 голосов
/ 11 февраля 2019

Я пробовал разные решения и нашел один рабочий образец, используя модифицированный код, доступный в "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 );
            })();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...