即使重新加载页面后也仅加载一次javascript

时间:2019-07-31 22:53:33

标签: javascript

我有一个wordpress页面,即使单击重新加载页面或转到另一篇文章,我也需要编辑JS函数以仅加载一个。是否可以避免通过重新加载页面来重新运行功能?

function showAd(){
        var adShownTel = false;
        jQuery(window).scroll(function() {
            var currentScroll = jQuery(window).scrollTop();
            if (currentScroll > 1600 && !adShownTel) {    
                var screenWidth = jQuery( document ).width();
                    adShownTel = true;
                    var $bannTel = jQuery("<div>", {id: "sticky_banner_tel_UTM", "class":"sticky_banner_tel_UTM"});
                    if(sssp.displaySeznamAds()) {
                        if(screenWidth < 737){
                        $bannTel.append('<div style="display:inline-block;"><div id="ssp-zone-97408"></div><script>sssp.getAds([{"zoneId": 97408, "id": "ssp-zone-97408","width": 320,"height": 100}]);</script></div>');
                    }
                    var $bannElClose = jQuery("<div>", {id: "sticky_banner_close", "class": "sticky_banner_close"});
                    $bannElClose.append('<span>Zavřít reklamu</span>');
                    $bannElClose.click(function(){
                        if(screenWidth < 737){
                            $bannTel.slideToggle("slow");
                        }
                    });
                        if(screenWidth < 737){
                            $bannTel.append($bannElClose);
                            jQuery('body').append($bannTel);
                        }
                }
            }
        });
    }
    jQuery(document).ready(function(){  
        showAd();
    });

2 个答案:

答案 0 :(得分:1)

这可能是cookie的工作:} This obligatory tutorialpoint link可能可以帮助您尝试类似的事情:

function showAd(){
    **if(!document.cookie){**
        var adShownTel = false;
        **document.cookie = "visited";**
        jQuery(window).scroll(function() {
            var currentScroll = jQuery(window).scrollTop();
            if (currentScroll > 1600 && !adShownTel) {    
                var screenWidth = jQuery( document ).width();
                    adShownTel = true;
                    var $bannTel = jQuery("<div>", {id: "sticky_banner_tel_UTM", "class":"sticky_banner_tel_UTM"});
                    if(sssp.displaySeznamAds()) {
                        if(screenWidth < 737){
                        $bannTel.append('<div style="display:inline-block;"><div id="ssp-zone-97408"></div><script>sssp.getAds([{"zoneId": 97408, "id": "ssp-zone-97408","width": 320,"height": 100}]);</script></div>');
                    }
                    var $bannElClose = jQuery("<div>", {id: "sticky_banner_close", "class": "sticky_banner_close"});
                    $bannElClose.append('<span>Zavřít reklamu</span>');
                    $bannElClose.click(function(){
                        if(screenWidth < 737){
                            $bannTel.slideToggle("slow");
                        }
                    });
                        if(screenWidth < 737){
                            $bannTel.append($bannElClose);
                            jQuery('body').append($bannTel);
                        }
                }
            }
        });
    }
    }
    jQuery(document).ready(function(){  
        showAd();
    });

希望这会有所帮助:)

答案 1 :(得分:0)

您可以使用cookielocal storage。像这样:

function showAd(){
        ...
        adShownTel = true;
        window.localStorage.setItem('adShownTel', true)
        ...
}

jQuery(document).ready(function(){  
        if (Boolean(window.localStorage.getItem('adShownTel'))) {
                showAd();
        }
});

但是,如果您对这些事情不满意,那么也许最好尝试查找一个库而不是自己实现此功能。

祝你好运!