根据iframe ID动态填充表单字段

时间:2011-07-25 10:05:48

标签: iframe dynamic

我见过很多关于如何将值从表单字段传递给iframe的文章 - 但没有其他方式 - 所以可以这样做吗?

我在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" >

位于域2上的表单具有我需要填充的隐藏字段,基于iframe元素ID“blue”的ID或名称。

这需要能够更改为绿色,黑色或其他任何内容,并且ID需要从iframe传递到表单字段。

在域名2中包含的形式可能是这样的吗?

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

表格字段:

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

但我不确定!有人可以帮忙吗?

注意:域名1是HTML,域名2是PHP!

由于

1 个答案:

答案 0 :(得分:0)

当然你不能轻易做到你想要的东西以避免XSS攻击,但我认为(但我没有测试它)你在这种情况下做了一些事情来通过他的src将数据传递给iframe:

<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
}

基本上你在第二个域中有一个变量从散列中删除,你可以在第一个域中以dinamically的方式改变散列。

编辑 - 我认为你有两种可能性:

我认为你有两种可能性:

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']; ?>