积极答复者
用JavaScript,如何在iframe里面,运行父窗口的一段代码?这段代码是不固定的。

问题
答案
-
可以实现
父窗口: <script type="text/javascript" language="javascript">
//var str="父页面对象";
var obj=new Object();
obj.str="1111111111111";
obj.messagebox=function(A){
alert(A);
}
MyAlert=function(){
alert('ok');
}
</script>子窗口:
<script type="text/javascript" language="javascript">
function UpdateParent(){
var _parentWin = window.parent ;
_parentWin.form1.username.value = "xxxx" ;
}
//获取父页面中全局变量
var parentVairous = window.parent.window.obj;
function childInvokeParent(){
alert(parentVairous.str);
}
function childInvokeParentMethod(){
parentVairous.messagebox('22222');
}
</script>- 已建议为答案 chijian li 2011年11月9日 5:14
- 已标记为答案 BU XI - MSFTModerator 2011年11月14日 2:44
全部回复
-
可以实现
父窗口: <script type="text/javascript" language="javascript">
//var str="父页面对象";
var obj=new Object();
obj.str="1111111111111";
obj.messagebox=function(A){
alert(A);
}
MyAlert=function(){
alert('ok');
}
</script>子窗口:
<script type="text/javascript" language="javascript">
function UpdateParent(){
var _parentWin = window.parent ;
_parentWin.form1.username.value = "xxxx" ;
}
//获取父页面中全局变量
var parentVairous = window.parent.window.obj;
function childInvokeParent(){
alert(parentVairous.str);
}
function childInvokeParentMethod(){
parentVairous.messagebox('22222');
}
</script>- 已建议为答案 chijian li 2011年11月9日 5:14
- 已标记为答案 BU XI - MSFTModerator 2011年11月14日 2:44
-
window.parent.父页面的方法名就可以执行方法了。
window.parent.对象名就可以访问到对象了。
【孟子E章】
都说了要执行什么方法不是固定的,而且是可以由开发人员自己随意指定一段代码的。具体一点:1、调用iframe之前,指定一个方法,这个方法是在当前页面里面的,并且是在调用的时候才指定,并不是一个固定的方法;
2、在iframe里面,点击“确定”按钮要执行这个指定的方法,目的是要实现一个网页对话框的功能。
所以就不能简单地调用window.parent.方法名
这个有点类似于回调函数。
“chijian li”的方法虽然不是很优美,但是却能够解决问题啊。不知道还有没有更好的方法?
注:我这样做的目的,主要是为了能够在平板电脑上实现一个通用的网页对话框程序,因为在平板电脑上,所有浏览器都不支持showModalDialog方法。
da jia hao!