javascript父子页面的相互控制...
时间:2010-08-10 来源:ksk
作者:中国电信早死早超生办公室 主任 吴钱 版权所有,转载请保留完整信息
最近做的一个资料管理系统中存在这样一种情况:A页面是一张表格,有些Cell的内容需要通过弹窗(B页面,javascript的window加载)来选择,于是就有了这样的需求:A页面需要控制B页面刷新B页面的表格,B页面需要将选择的内容返回给A页面,这就是典型的父子页面控制的问题。google、百度弄了一天均无结果,子页面可以通过parent.func()调用父页面js函数,但父页页面死活不能调用子页面函数。突然灵光一现,我们知道,只要代码还存在于内存当中,不管是你自己的还是别人的,或者相隔十万八千里,只要能找到就能调用。把我多年的VC++经验翻出来,于是弄出了如下解决方案。
A.html
<script type="javascript/text" >
var longPenis;
function portSelected( id, port)
{
this.store.set("ID",id);
this.store.set("Port",port); //伪代码
}
function setPenis( penis )
{
longPenis = penis;
}
function makeLove()
{
longPenis()
}
</script>
B.html
<script type="javascript/text">
function reload()
{
this.store.reload();
}
function savePenis()
{
parent.setPenis(reload)
}
</script>
<body onload="savePenis" >
<onclick="parent.portSelected(id,port)"> //伪代码
</body>
看明白了吗?是不是有点晕啊,来个更晕的。
A.html
<script type="javascript/text" >
var longPenis;
function portSelected( id, port )
{
this.store.set("ID",id);
this.store.set("Port",port); //伪代码
}
function slotSelected( id, slot )
{
this.store.set("ID",id);
this.store.set("Slot",slot);
}
function setPenis( penis )
{
longPenis = penis;
}
function makeLoveDay()
{
longPenis(slotSelected);
}
function makeLoveEvening()
{
longPenis(portSelected);
}
</script>
B.html
<script type="javascript/text">
var vagina;
function reload(br)
{
vagina = br;
this.store.reload();
}
function savePenis()
{
parent.setPenis(reload)
}
function makeLove()
{
vagina( id, port );
}
</script>
<body onload="savePenis" >
<onclick="makeLove"> //伪代码
</body>
哈哈,看明白了吗,其实很简单javascript函数跟C函数一样,是可以通过指针调用的,函数名就是函数的指针。