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

200
Views
¿Es posible mantener oculta una ventana emergente hasta que se ejecute algún código?

Entonces, tengo esta extensión, y debería mostrar una ventana emergente personalizada en la página cuando se hace clic en el ícono, y por "ventana emergente personalizada", quiero decir, algo renderizado dentro de un <iframe> e inyectado en el propio dominio de la página, no un "ventana emergente de extensión tradicional", pero el problema es que en algunas páginas no puedo inyectar un script de contenido, en esos casos, me gustaría mostrar el contenido en la "ventana emergente de extensión tradicional".

Lo hice funcionar, pero no es la solución más elegante, así es como lo estoy haciendo

El popup.html no tiene contenido en su <body> e importa un script.

Esta secuencia de comandos intenta enviar un mensaje a la secuencia de comandos de contenido que se ejecuta en la página; si el mensaje se envía correctamente, la ventana emergente se cerrará sola y la secuencia de comandos de contenido se encargará de la representación en la página.

Si el mensaje no se pudo enviar, entonces intenta inyectar el script en la página, si la inyección funciona, entonces el mensaje se envía de nuevo, si no, entonces estamos en una página que no permite la inyección, en eso caso, simplemente representamos el contenido en el cuerpo de la ventana emergente (estoy usando Svelte aquí)

 browser.tabs.query({active: true, currentWindow: true}).then(tabs => { const tab = tabs[0]; browser.tabs.sendMessage(tab.id, {action: "toggle"}).then(() => { window.close(); }).catch(() => { injectScript(tab).then(() => { browser.tabs.sendMessage(tab.id, {action: "toggle"}).then(() => { window.close(); }); }).catch(() => { document.body.style.width="400px"; document.documentElement.style.height="580px"; new App({ target: document.body, }); }); }); });

La cuestión es que, la mayoría de las veces, este proceso es básicamente instantáneo, solo haces clic en el ícono y aparece la ventana emergente personalizada, pero a veces, toma un poco más de tiempo (¿quizás 1 segundo?), y en ese tiempo, puedes vea la "ventana emergente tradicional" en su tamaño mínimo (¿quizás algo alrededor de 32x32? Es un cuadrado realmente pequeño)

Lo que me gustaría es mantener la ventana emergente oculta hasta que mi código "decidiera" si es posible o no inyectar el contenido en la página.

Lo que he probado y no funciona:

  • Establecer el ancho y/o la altura de las etiquetas y/o en 0px
  • Configuración de visualización: ninguna y/o visibilidad: oculta en y/o etiquetas

¿Hay alguna manera de hacer lo que estoy buscando?

EDITAR: Aquí hay una imagen para que puedas entender mejor de lo que estoy hablando, este es el "cuadrado": Ejemplo

A veces ni siquiera puedes verlo, a veces solo parpadea, y a veces tarda un poco más en desaparecer, depende de la PC, creo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Yo usaría una capa en este caso. Una capa se puede hacer usando CSS, puede contener todo el formato y el texto adecuados, y se puede mostrar u ocultar cuando lo desee sin afectar el resto del texto que la rodea debido a que se encuentra en otra capa. No estoy seguro de si esto resolverá su problema porque realmente no conozco el contexto del programa que está creando y lo que está tratando de lograr.

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!