问题描述
我一直在寻找有关标题中提到的问题的解决方案。尽管如此,我还是找不到解决方案,所以我决定询问 :)
我不知道为什么,但我的代码在“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 (将#修改为@)