¿como cambiar contenido de un frame con frameset?

Iniciado por $francisco, Septiembre 19, 2016, 09:26:07 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 19, 2016, 09:26:07 PM Ultima modificación: Septiembre 20, 2016, 11:14:54 AM por S@nde
index.php

Código: html5
<!DOCTYPE html>
<html>
<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="js/rq.js"></script>
<FRAMESET rows="20%,80%">
<frame id="algo" name="mainFrame" src="frames/header.php" noresize="noresize"></frame>
<FRAMESET cols="15%,85%">
<frame src="frames/sidebar.php" noresize="noresize"></frame>
<frame src="frames/body.php" noresize="noresize"></frame>
</FRAMESET>
</FRAMESET>
</html>


header.php

Código: html5
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="css/header.css">
</head>
<body>
header
</body>
</html>


rq.js

Código: javascript
$(document).ready(function(){
window.frames[1].document.body.style.background = "blue";
});


Lo he intentado con multitud de ejemplo y no funciona.

Código: javascript
$('body', $('#algo')[0].contentWindow.document).text('cambiado')


Código: javascript
$('#algo').contents().find('body').text('cambiado');


Pero ninguna de estas funcina ¿donde está el problema? porque parece ser que debería funcionar y no puedo acceder a cambiar nada de el frame.

Probando las tres formas:

(1)El index es cero
Código: javascript
window.frames[0].document.body.style.background = "blue"


(2)Igual
Código: javascript
$('body', $('#algo')[0].contentWindow.document).text('cambiado')

o utilizando contents():
Código: javascript
$('body', $('#algo').contents()).text('cambiado');


(3)Igual
Código: javascript
$('#algo').contents().find('body').text('cambiado')



Si esto no funciona, entonces debe ser que estas probando tu código sin un servidor. Si ese es el caso, el problema radica en una política de seguridad que implementa el navegador llamada "Same-origin policy". Para poder seguir ejecutando tu código en local y sin un servidor, entonces debes configurar tu navegador para desbloquear esa restricción. Por ejemplo, en google chrome debes utilizar el parámetro --disable-web-security al iniciar.

Saludos

Yo utilizo xamp, seguramente será lo de la politica de seguridad pero de ser así mejor no utilizar frames ya que lo que estoy buscando es que funcione el código en cualquier navegador. Gracias.