iframe向父页面传值的问题
父页面:
<div id="playlist"><iframe scrolling="no" src="1.asp" frameborder="0" id="playframe" name="playframe" width="100%" height="566"></iframe>
</div>
子页面:
<div id="test">asd</div>
如果我在父页面定义一个JS变量,如何让这个变量等于"asd"
<script language="javascript">
var str="asd";
</script>
------解决方案--------------------说明document.getElementById("playframe")没取到,在onload事件里执行
window.onload=function(){
var cwin=document.getElementById("playframe").contentWindow;
var str=cwin.document.getElementById("test").innerHTML;
alert( str )
}
------解决方案--------------------子页面的脚本既可以给父页面的变量(全局)赋值,也可以操作父页面上的dom元素。
在子页面中,用“window.parent”(window.可以省略)取到父窗口,然后就可以进行操作了,如:
parent.x='value';//给父页面上的变量x赋值字符串‘value’
parent.document.getElementById('test').innerHTML='content';//在父页面上id为test的元素内填充“content”
------解决方案--------------------改成全局变量,其它地方就可调用到
window.onload=function(){
var cwin=document.getElementById("playframe").contentWindow;
str=cwin.document.getElementById("test").innerHTML; //不加var 全局变量
alert( str )
}
------解决方案--------------------子页面:window.parent.setShippingResult(value, PostageType);
父页面: function setShippingResult(value, PostageType) {
$("#PostageUsd").html(value);
$("#_PostageType").val(PostageType);
}