2015-09-15 3 views
1

Я создал набор фреймов, состоящий из трех кадров. Первый принимает имя пользователя. Второй кадр содержит кнопку с названием приветствия. И третий результат result.html frame должен исправить: Hello (имя пользователя) при нажатии на кнопку приветствия. Любая помощь в том, как передать имя пользователя в кадр результата при нажатии на кнопку приветствия, чтобы отобразить его как «Привет ...» с помощью javascript.Передача данных в поле ввода между кадрами

Frameset:

<frameset rows="34%,33%,33%"> 
    <frame src="name.html" name="name"> 
    <frame src="greeting.html" name="greeting"> 
    <frame src="outcome.html" name="outcome"> 
    </frameset> 

Name.html:

<body> 
    <div id="fname"> 
     <form> 
      Client Name: <input type="text" name="fname" id="fname"> 
     </form> 
    </div> 
</body> 

Greeting.html:

<div id="greeting"> 
     <form> 
      <button type="button">Greeting</button> 
     </form> 
    </div> 
+0

Вы действительно хотите использовать HTML4 вместо HTML5, или это упражнение в классе? – zer00ne

ответ

0

Вы можете сэкономить время и использовать jQuery (даже если я выиграл» t рекомендуют использовать тяжелые библиотеки для выполнения простых манипуляций с DOM для небольших задач, но в вашем случае, я думаю, yo вам просто нужно выполнить эту работу).

Используйте функцию .contents(), чтобы получить содержимое фрейма

Действуйте это так:

var nameFrame = $('frame[name=name]').contents(); 
var outcomeFrame = $('frame[name=outcome]').contents(); 
var greetingFrame = $('frame[name=greeting]').contents(); 

$(greetingFrame).on('click', 'button', function() { 
    var name = $(nameFrame).find('.fname').val(); 
    $(geetingFrame).text(name); 
}); 
0

Рамки доступны через их имя атрибута на верхней родительском фрейме.

Так, например, внутри кадра:

parent.greeting.document.getElementById('fname').value

Вот рабочий пример: http://embed.plnkr.co/fMMCGxkR0zwgo3nCqhC5/preview

Надежда, что помогает!

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