事件 popstate 在 Google Chrome 中不起作用

问题描述

我一直在寻找有关标题中提到的问题的解决方案。尽管如此,我还是找不到解决方案,所以我决定询问 :)

我不知道为什么,但我的代码在“Firefox”中运行良好,但是当涉及到 google 时,“popstate”事件不起作用。不过有一点很奇怪。如果我将包含“popstat”的JS代码直接粘贴到Chrome的“控制台”中。它 f@***ng 有效。所以,我不知道为什么会这样。下面是我的 JS 代码

<!-- JAVASCRIPT PRINCIPAL (DEBE ESTAR CONTENIDO EN LA PÁG PRINCIPAL,COMO EN cuaLQUIER PÁGINA HIJO). -->
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="/static/core/js/vendor/jquery-1.11.2.min.js"><\/script>')</script>

    <script src="/static/core/js/vendor/bootstrap.min.js"></script>

    <script src="/static/core/js/plugins.js"></script>
    <script src="/static/core/js/main.js"></script>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        // navigation click actions
        $('.scroll-link').on('click',function(event){
            event.preventDefault();
            var sectionID = $(this).attr("data-id");
            scrollToID('#' + sectionID,750);
        });
        // scroll to top action
        $('.scroll-top').on('click',function(event) {
            event.preventDefault();
            $('html,body').animate({scrollTop:0},'slow');         
        });
        // mobile nav toggle
        $('#nav-toggle').on('click',function (event) {
            event.preventDefault();
            $('#main-nav').toggleClass("open");
        });
    });
    // scroll function
    function scrollToID(id,speed){
        var offSet = 0;
        var targetoffset = $(id).offset().top - offSet;
        var mainNav = $('#main-nav');
        $('html,body').animate({scrollTop:targetoffset},speed);
        if (mainNav.hasClass("open")) {
            mainNav.css("height","1px").removeClass("in").addClass("collapse");
            mainNav.removeClass("open");
        }
    }
    if (typeof console === "undefined") {
        console = {
            log: function() { }
        };
    }
    </script>

    

    <!-- JS de páginas hijo: -->
    
<!-- 
    NOTA: NO SE PUEDE REALIZAR UNA SOLICITUDO "REQUEST" MEDIANTE "JS" Y "DJANGO" AL MISMO TIEMPO. Es decir,no pueden correr dos procesos
    que esten haciendo solicitud "REQUEST" al mismo tiempo,ya que uno podría sobrescribir al otro y podríamos terminar con muchos errores.

    NOTA 2: NO NECESARIAMENTE LOS ERRORES MOSTradOS EN "CONSOLA" EN EL ICONITO "XHR",cuaNDO MANdamOS DATOS CON "fetch()" y "JS" SON NECESARIAMENTE
    DE "JS". PUEDEN SER ERRORES DE PYTHON PERSE EN LA LÓGICA DE LAS "VIEWS".
-->
<script type="text/javascript">
    // $(document).ready(function() {
    //     window.onpopstate = function() {window.location.reload();}; history.pushState({},'','');
    // });
</script>
<script type="text/javascript">
function CrearPedido(){
    // Creating a token to send the "POST" request:
    console.log("FUNCIONANDO!!")
    function getCookie(name) {
        var cookieValue = null;
        if (document.cookie && document.cookie !== '') {
            const cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                const cookie = cookies[i].trim();
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0,name.length + 1) === (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }

    const csrftoken = getCookie('csrftoken');

    // Recuperamos la información del pedido del cliente,antes de borrarlos en el paso posterior:
    //localStorage.removeItem("Cantidad_Item");  // Antes de comenzar con cualquier otro procedimiento,borramos este comodín,el cual nos dice la
    // cantidad de items que hay en la canasta.
    var elementos_canasta = [];
    for (var i = 0; i < localStorage.length; i++){
        var key = localStorage.key(i)
        elementos_canasta.push(JSON.parse(localStorage.getItem(key)));
        console.log(JSON.parse(localStorage.getItem(key)));
    }
    
    // Mandamos la información del pedido del cliente a la url deseada:
    var url_pedidos = "/pedido/orden_datos/"  // URL del cuestionario de pedido.

    fetch(url_pedidos,{
        method: 'POST',// SI VAMOS A MANDAR INFORMACIÓN DE ESTA MANERA CON JS. SIEMPORE DEBEMOS USAR "POST",DE OTRO FORMA,NO SE ENVIARÁN
        // LOS DATOS O INFORMACIÓN.
        headers: {
            'Content-type': 'application/json','X-CSrftoken': csrftoken,},body: JSON.stringify({"Informacion_Pedido": elementos_canasta})
    })
};
</script>
<script>
    console.log("PREVIoUS PAGE: ",document.referrer);
    window.onpopstate = function() {window.location.reload();}; history.pushState({},'');;
</script>

    


<div id="lightBoxOverlay" class="lightBoxOverlay" style="display: none;"></div>
<div id="lightBox" class="lightBox" style="display: none;">
<div class="lb-outerContainer">
<div class="lb-container">
<img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==">
<div class="lb-nav">
<a class="lb-prev" href=""></a>
<a class="lb-next" href=""></a>
</div>
<div class="lb-loader">
<a class="lb-cancel"></a>
</div>
</div>
</div>
<div class="lb-dataContainer">
<div class="lb-data">
<div class="lb-details">
<span class="lb-caption"></span>
<span class="lb-number"></span>
</div>
<div class="lb-closeContainer">
<a class="lb-close">
</a>
</div>
</div>
</div>
</div>
</body>

我遇到问题的代码是:

<script>
    console.log("PREVIoUS PAGE: ",'');;
</script>

正如我所说,在 Firefox 中它运行良好。我不知道为什么在 chrome 中没有发生这种情况。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...