отправьте значение от одного iframe до другого iframe

У меня есть два iFrames на моей странице, и я хотел бы к значению формы поля ввода один iFrame к полю ввода другого iFrame. Как я могу сделать это?

1
задан Josh 2 December 2010 в 17:45
поделиться

3 ответа

Вам нужно будет установить скрытое поле или что-то еще в родительском элементе:

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());
2
ответ дан 2 September 2019 в 23:21
поделиться

Не самый простой. Можем ли мы предположить, что и IFRAMES, и родительский документ являются частью одного домена и имеют одинаковый doctype? Если нет, то ограничения безопасности, скорее всего, заблокируют вас.

Также, в каком браузере(ах) вы хотите, чтобы это работало?

0
ответ дан 2 September 2019 в 23:21
поделиться

Хорошо, учитывая ваш ответ выше о том, что вы находитесь в том же домене и т. Д.

Ответ об установке 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;

// Вы должны выполнить обычную проверку для существующего элемента и т. д.

0
ответ дан 2 September 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: