У меня есть два iFrames на моей странице, и я хотел бы к значению формы поля ввода один iFrame к полю ввода другого iFrame. Как я могу сделать это?
Вам нужно будет установить скрытое поле или что-то еще в родительском элементе:
window.opener.document.getElementById(Client ID of Hidden Field).value = Selected IDs;
Затем вам нужно будет установить атрибут src второго iFrame и добавить значение как часть строки запроса
что-то вроде:
<iframe id='iFrame2' src='/myPage.html?val=myValue' ></iFrame>
Вы, вероятно, можете сделать это в javascript, когда я это сделал, я сделал это с asp.net, поскольку сценарий был другим, но, вероятно, что-то вроде:
$('#iFrame2').attr('src', '/myPage.html?val=' + $('#myHiddenField').val());
Не самый простой. Можем ли мы предположить, что и IFRAMES, и родительский документ являются частью одного домена и имеют одинаковый doctype? Если нет, то ограничения безопасности, скорее всего, заблокируют вас.
Также, в каком браузере(ах) вы хотите, чтобы это работало?
Хорошо, учитывая ваш ответ выше о том, что вы находитесь в том же домене и т. Д.
Ответ об установке URL-адреса IFRAME будет работать, если вы хотите отправлять / получать из другого IFRAME . Однако я прочитал это, поскольку вы хотите установить значение в существующем поле.
В этом случае вам нужно сделать что-то вроде: 1. Предположим, что IFRAME имеют идентификаторы I1 и I2. 2. Поместите этот код на родительскую страницу (вы можете активировать / поместить его в дочернюю, но это усложняется, так как вам нужно обрабатывать состояние загрузки / готовности и выполнять дополнительные поиски.
var if1 = document.getElementbyId('I1');
var if2 = document.getElementbyId('I2');
//Or use $get from AJAX framework, etc
var doc1 = if1.document;
var doc2 = if2.document;
//These may throw security or load exceptions if the IFRAMES are not loaded, cross domain, or do not contain HTML.
doc2.getElementById('targetElement').value = doc1.getElementById('sourceElement').value;
// Вы должны выполнить обычную проверку для существующего элемента и т. д.