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

453
Views
Deshabilite todos los enlaces dentro de IFRAME usando jQuery

Quiero deshabilitar todos los enlaces dentro de un IFRAME, cuando las personas hagan clic en esos enlaces, aparecerá una alerta.

Esto es lo que tengo hasta ahora, pero jQuery no hace nada. No estoy seguro de lo que hice mal.

 <iframe id='templateframe' name='templateframe' src="templates/template<?php echo $templateID; ?>/login.html"></iframe> $(document).ready(function(){ $('#templateframe').contents().find('a').click(function(event) { alert("demo only"); event.preventDefault(); }); });

Gracias por adelantado.

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

Espero que $(document).ready se ejecute antes de que se haya cargado el contenido del iframe. Intente usar el atributo onload para el iframe en su lugar.

over 4 years ago · Santiago Trujillo Report

0

También estaba buscando deshabilitar los enlaces iframe y no pude encontrar una solución. Gracias a HTML5, puede deshabilitar fácilmente los enlaces simplemente agregando el atributo sandbox .

 <iframe src="externalsite.com" sandbox></iframe>

ver demostración

Espero que esto ayude a alguien que busca en la red, especialmente porque esta pregunta aparece primero en Google.

over 4 years ago · Santiago Trujillo Report

0

La solución mencionada por "lol" en realidad funciona bastante bien. Me topé con esto accidentalmente después de trabajar en esto durante un par de horas...

Coloque su iframe dentro de un elemento div, luego haga que el div sea transparente y empuje el índice z del iframe detrás del div. Mira este ejemplo:

 <div class="container"> <iframe class="lockframe" src="www.google.com"></iframe> </div>

Luego configure su css de esta manera:

 div.container { background: transparent; } iframe.lockframe { z-index: -2; }

Cargue su página y el div es lo que aceptará los eventos de clic, no el iframe.

over 4 years ago · Santiago Trujillo Report

0

Se debe validar el content policy security CSP en el atributo frame-ancestors , ya que de acuerdo a la politica de seguridad que tenga el sitio el javascript o jquery no funcionara si el iframe apunta a un sitio fuera del dominio, lo segundo a corregir es agregar un metodo onclick que capture los elementos tipo vinculo "a href" y retorne falso cuando se haga click de esa manera no ejecutara, en su defecto cambiarlo por event.preventdefault para que no ejecute la accion del vinculo por defecto. La solucion sencilla es al iframe agregar el atributo sandbox sin valor, o en su defecto que no cuente con el valor "allow-popups" asi no se abriran paginas en otra ventana cuando se haga click en el iframe.

about 4 years ago · Fredy Alejandro Camelo Guerrero 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!