Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!