Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

336
Vistas
¿Cómo evitar que el código javascript "mi propio" abra una nueva ventana?

Este es dificil ...

Tengo esta tarea de construir un módulo para un gran sistema hecho con PHP. La regla más importante es que no puedo tocar el código del sistema central, por lo que no puedo corregir algunos de sus errores.

El servicio principal de mi módulo es crear un documento personalizado que no es editado por el editor predeterminado del sistema, sino por un formulario personalizado creado por mi módulo.

Para evitar que los usuarios editen el documento personalizado en lugar de completar el formulario, puedo configurar el documento como blocked en el momento de la creación.

Pero incluso con el documento bloqueado, el sistema abre su editor predeterminado en una nueva ventana emergente y luego muestra un mensaje de error incorrecto que no tiene nada que ver con el bloqueo, y está jugando con las cabezas de los usuarios.

Podría arreglar esto en un minuto cambiando algunas líneas en el código central, pero luego perdería mi trabajo. Tampoco puedo pedirle al propietario del sistema que solucione el problema porque tardaría una eternidad (el propietario es de una institución pública).

La función del sistema es así:

  1. Cuando el usuario crea un documento, pasa la ejecución a una función en cada módulo, por lo que estos módulos podrían tener la posibilidad de reaccionar a la creación del documento;
  2. El módulo recibe datos sobre el documento creado y verifica si su tipo es el tipo de documento personalizado, luego lo bloquea si es verdadero;
  3. El módulo devuelve la ejecución al sistema de código, que termina de crear el documento (por lo que no puedo usar die() , de lo contrario, el documento no se crea en absoluto);
  4. El sistema abre un editor para que el usuario pueda poner contenido en él.

Así que se me ocurrió la idea de que mi módulo podría, después de bloquear el documento, generar una etiqueta javascript con un código que evitaría que el código javascript creado por el sistema central use el comando window.open() , o al menos ocultar esta ventana emergente. .

¿Hay alguna manera de hacerlo con javascript?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede sobrescribir la apertura si su código puede ejecutarse antes de que ocurra la apertura:

 const myOpen = window.open; let iwanttopen = false: window.open = function() { if (iwanttoopen) return myOpen(...arguments); // here YOU decide }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda