2015-11-17 3 views
1

Я изучаю JavaScript сейчас и сталкиваюсь со следующей проблемой: У меня есть страница с некоторыми кадрами, и я хочу загрузить какую-либо страницу в один из указанных фреймов; Но код ниже не делает то, что я хочу.Как открыть окно в кадре

Не могли бы вы предложить, пожалуйста, как я могу загрузить любой URL-адрес в указанный кадр?

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8"/> 
    <title>Frameset Example</title> 
</head> 
<script> 
    //"use strict"; 
    function print(str) { 
     document.write("<p><pre>" + str + "</pre></p>"); 
    } 

    window.open("http://www.google.com", "topFrame"); 
</script> 
<frameset rows="160,*"> 
    <frame name="topFrame"> 
    <frameset cols="50%,50%"> 
     <frame name="leftFrame"> 
     <frame name="rightFrame"> 
    </frameset> 
</frameset> 
<body> 
</body> 

+0

http://jsfiddle.net/5hnc2vzv/1/ что-то вроде этого, если вы хочу сделать это в javascript. Но я не вижу причин не делать этого в HTML напрямую –

+0

Я просто узнал о команде window.open и есть возможность загрузить url в фрейм, но он не работает в моем примере – traktor123

+0

Попробует открыть всплывающее окно: http://jsfiddle.net/cmytz1bx/ Если на хроме, как я, вы увидите сообщение в правом верхнем углу, говорящее, что всплывающее окно заблокировано –

ответ

0

Для того, чтобы открыть страницу в пределах кадра, установите атрибут Src кадра к нужному URL.

<frame src="whateversite.html"> 

Обратите внимание, что фреймы устарели в HTML5. Рассмотрим с помощью IFRAME для выполнения той же задачи, или функция загрузки IFrame JQuery в: https://www.w3.org/wiki/HTML/Elements/iframe JQuery нагрузки: http://api.jquery.com/load/

+0

Это хорошо, но как я могу динамически загружать google.com в какой-то фрейм, указанный по имени? – traktor123

+0

Не поддерживаемые фреймы не так, потому что мы можем перейти на html 4 и результат тот же – traktor123

+0

document.getElementById ('myframe'). src =" www.mywebsite.html "Я только упомянул, что они устарели, поэтому вы можете рассмотреть альтернативные варианты перехода к будущему доказательству вашей страницы. Также я считаю, Google не позволяет вам загружать свою страницу в фрейм, http://stackoverflow.com/questions/8700636/how-to-show-google-com-in-an-iframe Если google был только ради примера вы должны быть в порядке с вашим реальным сайтом. –

0

Кажется, что я нашел, почему URL не загружается в кадр 1) скрипт загружен до кадров и не знать о topFrame 2) я мог бы сделать эту загрузку из дочерних фреймов, например, как этот

MainWindow.html:

<!--<!DOCTYPE html>--> 
<html lang=" EN" XMLNS="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>Frameset Example</title> 
</head> 
<frameset rows="160,*"> 
    <frame src="frame.html" name="topFrame"/> 
    <frameset cols="50%,50%"> 
     <frame src="frame.html" name="leftFrame"/> 
     <frame src="frame.html" name="rightFrame"/> 
    </frameset> 
</frameset> 
<body> 
</body> 

frame.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Frameset Example</title> 
    <script> 
     window.open("http://korrespondent.net", "leftFrame"); 
    </script> 
</head> 
<body> 
</body> 
</html> 

Но у меня все еще есть вопрос: как запустить скрипт из MainWindow.html? Я хочу поместить следующий скрипт в где-то в MainWindow.html:

<script> 
    window.open("http://korrespondent.net", "leftFrame"); 
</script> 

Но это не работает

0

Я сделал дополнительные исследования и здесь является правильным ответом:

MainWindow.html:

<!DOCTYPE html> 
<html lang=" EN" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Frameset Example</title> 
    <script type="text/javascript" defer src="LoadFrame.js"></script> 
</head> 
<frameset rows="160,*"> 
    <frame src="frame.html" name="topFrame" /> 
    <frameset cols="50%,50%"> 
     <frame src="frame.html" name="leftFrame" /> 
     <frame src="frame.html" name="rightFrame" /> 
    </frameset> 
</frameset> 
<body> 
</body> 
</html> 

frame.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Frameset Example</title> 
</head> 
<body> 
</body> 
</html> 

LoadFrame.js:

window.open("http://www.korrespondent.net", "leftFrame"); 

Так, чтобы иметь возможность доступа к некоторой внутренней рамки, мы должны использовать отложенную загрузку JavaScript

Смежные вопросы