Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

133
Visualizações
Intentando usar sessionStorage en javascript

Estoy tratando de mostrar una ventana emergente solo una vez por sesión. Para lograr eso, estoy usando la función sessionStorage. sin embargo, la ventana emergente aparece cada vez que recargo la página web. ¿Puedes decirme dónde estoy cometiendo el error?

 dialogue = new IMu.App.Dialogue(); dialogue.setHtmlMessage(IMu.string('dialogue-heading')); dialogue.show({ showDetails: true }); window.sessionStorage.setItem('message','true'); var is_dialogue = window.sessionStorage.getItem('message'); if (is_dialogue != 'true') { dialogue.show(); }

A continuación se muestra la función de mostrar

 show: function(options, callback) { if (typeof(options) == 'function') { callback = options; options = undefined; } var test = jQuery('body').children('div.imu-dialogue'); jQuery('body').children('div.imu-dialogue').remove(); var owner = self.owner = jQuery('body').child('div', 'imu-dialogue'); var box = owner.child('div', 'box'); var message = box.child('div', 'message'); if (this.message) { var value = this.message.value; var method = this.message.type; message[method](value); } if (self.details) { var details = box.child('div', 'details'); for (var i in self.details) { if (! self.details.hasOwnProperty(i)) continue; var detail = details.child('div', 'detail'); var value = self.details[i].value; var method = self.details[i].type || 'text'; detail[method](value); } var show = box.child('div', 'show-details'); if (! options || options.showDetails !== true) { show.text('Details'); details.hide(); } else { details.show(); show.text('I agree'); } show.on('click', function() { self.owner.remove(); }); }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Olvídate del dialogue.show();

Si prueba en una nueva pestaña de su navegador el siguiente código:

 window.sessionStorage.setItem('message','true'); is_dialogue = window.sessionStorage.getItem('message'); is_dialogue != 'true' // false

Actualizar la página y ejecutar

 is_dialogue = window.sessionStorage.getItem('message'); is_dialogue != 'true' // false

¿Es posible que tenga algo en su código que limpie el almacenamiento de la sesión montado o creado?

about 4 years ago · Juan Pablo Isaza Relatório

0

Tienes tu lógica al revés. Debe verificar si el elemento sessionStorage se ha configurado primero . Si no se ha configurado, muestre el cuadro de diálogo y luego configúrelo.

 if (!sessionStorage.getItem('notified')) { let dialogue = new IMu.App.Dialogue(); dialogue.setHtmlMessage(IMu.string('dialogue-heading')); dialogue.show({ showDetails: true }); sessionStorage.setItem('notified', 'true'); }

No es necesario verificar el valor de la propiedad almacenada. Simplemente probar su existencia es suficiente.

about 4 years ago · Juan Pablo Isaza Relatório

0

Después de algunas investigaciones, se encontró la respuesta para que se mostrara la ventana emergente, pero no debería mostrarse cuando se actualiza la página.

 var is_dialogue = window.sessionStorage.getItem("dialogue"); if (is_dialogue != 'true') { dialogue = new IMu.App.Dialogue(); dialogue.setHtmlMessage(IMu.string('dialogue-heading')); dialogue.show({ showDetails: true }); sessionStorage.setItem("dialogue", "true"); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda