Динамическое заполнение поля формы на основе идентификатора iframe - PullRequest
1 голос
/ 25 июля 2011

Я видел много статей о том, как передавать значения из поля формы в iframe - но никак иначе - Так можно ли это сделать?

Я вызываю внешнюю форму из другого домена (другого сайта, к которому у нас есть доступ) в таком фрейме:

Домен один:

<!--display external form in iframe - 
change the ID name to populate one form field -->
<iframe id="blue" name="blue" scr="domain-two-page.html" width="200px" >

Форма, расположенная в домене два, имеет скрытое поле, которое мне нужно заполнить, основываясь на идентификаторе или имени идентификатора элемента iframe "blue".

Это должно быть в состоянии изменить на зеленый, черный или любой другой, и идентификатор должен быть передан в поле формы из iframe.

Может быть, что-то подобное в форме, которая содержится во втором домене?

<script> 
$id = getElementById('ID').value ="variable"; 
</script>

И поле формы:

 <!-- the form field value changes with the iframe ID -->
 <input type="hidden" name="hiddenfield1" value="$id" />

Но я не уверен! Может кто-нибудь помочь, пожалуйста?

NB. Домен один - это HTML, а домен два - это PHP!

Спасибо

1 Ответ

0 голосов
/ 25 июля 2011

Конечно, вы не можете легко делать то, что хотите, чтобы избежать XSS-атак, но я думаю (но я не проверял это), что вы можете сделать что-то в этом случае для передачи данных в iframe через его src:

<iframe id="blue" name="blue" scr="http://otherdomain.com/domain-two-page.html#blue" width="200px" >

в другом домене вы можете сделать:

window.onLoad = function(){
    color = window.data.hash;
}

И поэтому вы можете использовать цвет во втором документе по своему усмотрению

В первом домене (где находится iframe) у вас может быть функция, которая «отправляет» данные следующим образом:

function dataSend(data){
    iframe.src = "http://otherdomain.com/domain-two-page.html#"+data
}

Обычно у вас есть переменная во втором домене, которая выходит из хеша, и вы можете динамически изменять хеш в первом домене.

РЕДАКТИРОВАТЬ - у меня есть две возможности:

у меня есть две возможности:

1) <iframe width="300px" height="450px" allowtransparency="yes" src="domaintwo/search.php#EK" name="EK" id="EK" > </iframe>

2) на домене 2

 window.onLoad = function(){ color = window.data.hash; } 
//now copy that value in the value of the hidden field
$(document).ready(function(){
     $('input[name="PrefferedAirlines"]').val(color);
});

или

1) <iframe width="300px" height="450px" allowtransparency="yes" src="domaintwo/search.php?formvalue=EK" name="EK" id="EK" > </iframe>

2) на домене 2

<?php $color = $_GET['formvalue']; ?>
...