2016-05-29 4 views
1

У меня есть фрэймы вроде этого:как целевой кадр из фрейма с OnLoad событием

<frameset rows="120px,100%"> 
<frame name="top" id="top" src="top.php" noresize frameborder="0" scrolling="no" /> 
<frame name="main" id="main" src="main.php" noresize frameborder="0" scrolling="yes" /> 

Внутри файл main.php у меня есть:

<script> 
function reload_top() { 
    top.frames['top'].location.href= "http://www.google.com"; 
} 
</script> 

И Событие onload main.php:

<body onload="reload_top();"> 

Что я хотел бы достичь, так это то, что каждый раз, когда кто-то загружает main.php, этот файл повторно загружает верхний фрейм top.php внутри вершины, но до сих пор я могу заставить его вырваться из набора фреймов и загрузить новый страница ...

Я пробовал любой один из них:

document.getElementById('top').src = "http://www.google.com"; 

window.top.location.href = "http://www.google.com"; 

top.frames['top'].location.href= "http://www.google.com"; 

ни один из них не работает. Что я делаю неправильно? не

Благодаря

ответ

0

В качестве информации, кадров тег больше не поддерживается в HTML5. Вы хотите использовать iframe для загрузки разных страниц на одной странице?

Проблема вы не можете установить расположение рамки, потому что это не определено, когда вы пытаетесь получить доступ к раме

например Код

<iframe id="topf" src="stacktop.php"></iframe> 
<script> 
    function reload_top() { 
     var a = document.getElementById('topf'); 
     a.src = "http://www.aapastech.com"; 
    } 
</script> 
+0

Я - рамки области, но я определяю свой html doctype как 4.01, потому что мне нужны они для этого проекта. Я попробовал ваше решение, но не работал. – marcnyc

+0

В чем была проблема? Я попробовал решение. Это сработало. Didd вы отлаживаете, чтобы найти, доступен ли элемент в точке, которую вы установили. Src – Aditya

+0

Ваш пример может работать, потому что вы используете iFrame, но я указал, что использовал Frameset, и когда получаю, что получаю: «Uncaught TypeError: не может установить property 'src' of null " – marcnyc

0

Html5 оленья кожа Опорные рамы установлены, но использование JQuery и попробовать его

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">  </script> 
<script> 
$(document).ready(function(){ 

     document.getElementById("top").src="http://yahoo.com"; 
}); 
</script> 
</head> 
<frameset cols="25%,*,25%" id="abc"> 
<frame src="http://www.google.com" id="top" name="top"> 
<frame src="http://www.google.com"> 
<frame src="http://www.google.com"> 
    </frameset> 
</html> 
+0

Я - рамки области, но я определяю свой html doctype как 4.01, потому что мне нужны они для этого проекта. Я попробовал ваше решение, но не работал. – marcnyc

+0

Он работал для меня и в чем проблема? – Akshath

1

Попробуйте другой ответ здесь мы используем OnLoad событие в фреймами элемент

<html> 
<head> 
<title>Frame: Onload & Onunload Examples</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<script language="JavaScript"> 
<!-- 
    function testOnload() { 
    // alert('OnLoad: Alert in testOnload() executed by onLoad property of frameset tag.'); 
    document.getElementById("top").src="http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_frames2"; 
    } 
function testOnUnload() { 
//alert('OnUnload: Alert in testOnUnload() executed by onUnLoad property of frameset tag.') 
    } 
    //--> 
    </script> 
    </head> 
    <frameset rows="80,*" frameborder="0" border="0" framespacing="0" 
    onLoad="javascript:testOnload()" 
    onUnload="javascript:testOnUnload(); alert('onUnload: alert in frameset tag')"> 
<frame name="topFrame" scrolling="NO" noresize src="https://developers.google.com/oauthplayground/" id="top"> 
<frame name="mainFrame" src="https://developers.google.com/oauthplayground/"> 
<noframes> 
    <body bgcolor="#FFFFFF"> 
    <p>Sorry, this page needs a browser that supports frames.</p> 
    </body> 
</noframes> 
</frameset> 
</html> 
0

после того, как некоторые более копать я нашел что способ нацеливания кадра из другого кадра состоит в использовании:

parent.document.getElementById('frameName').src 

так что моя функция теперь работает и выглядит следующим образом:

<script> 
    function reload_top() { 
     parent.document.getElementById('top').src = "venues.php"; 
    } 
</script> 

Спасибо за то, чтобы помочь парням.