Cambiar iframe src con Javascript

Resuelto shinjuo asked hace 14 años • 10 respuestas

Estoy intentando cambiar <iframe src=... >cuando alguien hace clic en un botón de opción. Por alguna razón, mi código no funciona correctamente y tengo problemas para entender por qué. Esto es lo que tengo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
  <title>Untitled 1</title>

  <script>
  function go(loc) {
    document.getElementById('calendar').src = loc;
  }
  </script>
</head>

<body>
  <iframe id="calendar" src="about:blank" width="1000" height="450" frameborder="0" scrolling="no"></iframe>

  <form method="post">
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Day
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Week
    <input name="calendarSelection" type="radio" onselect="go('http://calendar.zoho.com/embed/9a6054c98fd2ad4047021cff76fee38773c34a35234fa42d426b9510864356a68cabcad57cbbb1a0?title=Kevin_Calendar&type=1&l=en&tz=America/Los_Angeles&sh=[0,0]&v=1')" />Month
  </form>

</body>

</html>
Expandir fragmento

shinjuo avatar Sep 17 '10 02:09 shinjuo
Aceptado

En este caso, probablemente se deba a que estás utilizando los corchetes incorrectos aquí:

document.getElementById['calendar'].src = loc;

debiera ser

document.getElementById('calendar').src = loc;
Pekka avatar Sep 16 '2010 19:09 Pekka

Quizás esto pueda ser útil... Es HTML simple, sin JavaScript:

<p>Click on link bellow to change iframe content:</p>
<a href="http://www.bing.com" target="search_iframe">Bing</a> -
<a href="http://en.wikipedia.org" target="search_iframe">Wikipedia</a> -
<a href="http://google.com" target="search_iframe">Google</a> (not allowed in inframe)

<iframe src="http://en.wikipedia.org" width="100%" height="100%" name="search_iframe"></iframe>
Expandir fragmento

Por cierto, algunos sitios no te permiten abrirlos en iframe (razones de seguridad: clickjacking)

inemanja avatar Jul 11 '2013 14:07 inemanja

Aquí está la forma jQuery de hacerlo:

$('#calendar').attr('src', loc);
Jim Clouse avatar Dec 24 '2013 14:12 Jim Clouse