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

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

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 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!