Повторяющееся содержимое при использовании функции append () - PullRequest
0 голосов
/ 20 мая 2019

Раньше я добавлял контент на страницу, используя javascript и jQuery, он отлично работает в Chrome, но при попытке с Firefox дублирует добавленный контент.

Вот пример: duplicate appeneded content

Я использую этот код для добавления содержимого в div:

function PlayGames() {
    $(".gameActions, #flash-game").show();
    $(".TheGame").show().append("<object id='flash-game' type='application/x-shockwave-flash' height='100%' width='100%' frameborder='0' scrolling='no' data='URL'>");
        }

Не знаю, почему это иногда происходит только в Firefox и IE. Вот полный код JavaScript:

<script src="js/jquery-1.11.3.js"></script>
        <script>        
        jQuery.noConflict();
        jQuery( document ).ready(function($) {
          $("TheGame").hide();
        });
        window.onload = function(){
         var mainDiv = $( "games" );
        }

        var isShowAd = '1';

        setTimeout(function () {
            if (typeof(Noads) === 'undefined') {
                $(".AdBlock").hide();
            }
        });

        function PlayBtn() {
            $.ajax({
                type: 'GET',
                url: 'TheURL',
            });
            $(".TheGameInfo").hide();
            if (!isShowAd) {
                PlayGames();
            } else {
                if (typeof (Noads) === 'undefined') {
                    $(".TheGameInfo,.AdBlock").show();
                } else {
                    StartPlayAds();
                }
            }
        }

        function StartPlayAds() {
            var SizeWindow =$('.TheGame');
            var Height = $(SizeWindow).innerHeight();
            var Width = $(SizeWindow).innerWidth();
            $(SizeWindow).append("<div id='mainContainer'><div id='ContentElementBox'><video id='contentElement'></video></div><div id='adContainer'></div></div>").trigger('create');
            try {
                var googleAds = new GoogleAds(
                    document.getElementById('adContainer'),
                    document.getElementById('contentElement'),
                    Width, Height,
                    function (action) {
                        if (action === GoogleAds.CallbackAction.CONTENT_PLAY) {
                            $("#mainContainer").remove();
                            PlayGames();
                        }
                    });
                googleAds.playAds();
            } catch (e) {
                $("#mainContainer").remove();
                PlayGames();
            }
        }

        function PlayGames() {
            $(".gameActions, #flash-game").show();
            $(".TheGame").show().append("<object id='flash-game' type='application/x-shockwave-flash' height='100%' width='100%' frameborder='0' scrolling='no' data='URL'>");
        }

        function RefreshGame() {
            $("#flash-game").remove();
            StartPlayAds();
        }
        });
</script>

1 Ответ

0 голосов
/ 20 мая 2019

Хорошо, я понял это !!!кто сталкивается с такой проблемой, пожалуйста, прочитайте это.Когда кнопка SKIP ADS нажата, функция .append () добавляет повторяющийся элемент, такой как iframe, DIV или любой другой в моем случае, iframe.

Мой старыйкод только проверял, существует ли #mainContainer, затем удалите его и начните играть в игру, выполнив следующие процедуры:

function (action) {
 if (action === GoogleAds.CallbackAction.CONTENT_PLAY) {
    $("#mainContainer").remove();
    PlayGames();
 }

Итак, я попытался включить идентификатор основной игры iframe (который вызываетповторите проблему) , и она прекрасно работает, когда AD SKIPPED iframe будет удален либо следующим образом:

function (action) {
 if (action === GoogleAds.CallbackAction.CONTENT_PLAY) {
    $("#mainContainer, #flash-game").remove();
    PlayGames();
 }

Теперь он работает точно так, как нужно.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...