只能说才疏学浅,就这个问题折磨了我好久,快到要交差的时候才解决。
从发现这个问题我试了三种解决方式,首先当然是要用公共js来解决了,把要调取的方法写在同一个js文件里面,然后两个页面同时调用,如果函数简单还好,但是如果函数里面的参数牵扯很多的话,那弯弯绕绕的我恨不得把整个页面都搬过去,所以我嫌麻烦,放弃了。第二种方法就是用iframe框架,让两个页面有关系,然后通过父子页面的关系就可以调取方法了,因为以前从来没有接触过iframe,使用的时候各种各样的问题都出来,然后我又放弃了。这样不好,没有毅力!然后最后一种方法是jQuery里面的load,可以传参,但是我也没整明白到底行不行,所以也没用。最后绕来绕去是在不行了我还是用了iframe,整了一下午,终于解决了。
我先在a页面里面引入一个iframe标签,我刚开始的想法是想用事件来改变iframe里面的src属性,但是总是没有打开指定的那个页面,看来看去才发现我在写iframe标签的时候把src属性置为空,等到我测试在里面随意写了一个地址,竟然就可以了
<iframe id="myIframe" name="childPage" src="choose_Dept.html" width="100%" frameborder="0" height="100%"></iframe>
然后我打开了我需要的那个页面b页面,
a页面:
$("#myIframe").attr("src","choose_Empl.html"); $("#myIframe").css({ "position":'fixed', "left":"0", "top":"0", "width":"100%", "height":"100%" });
但是因为我把iframe标签写在a页面的最下面,所以应该让这个iframe置顶,也就是给它一个定位让它在最上面,这样就成功了,然后我在b页面调取a页面的方法再关闭b页面,用parent.window.方法()就可以调用到
b页面:
parent.window.setEmpl();
调用方法成功以后,就是要把iframe关掉,重新回到a页面,但是在b页面怎么关掉a页面里面的iframe,再调用一个方法不就行了,把关掉iframe的方法写在a页面的函数里,一样的原理。
a页面:
//关闭iframe框架 function closeIframe(){ $("#myIframe").attr("src",""); $("#myIframe").css({ "width":"0", "height":"0" }); }
b页面:
parent.window.closeIframe();
就这样,这个问题也算解决了,但是解决问题的过程不太美妙,东想西凑,总是想找最简单的方式解决,还是要钻研每一个方法,争取都学明白。
这只是针对自己的一次整理,想把方法记录下来,下次遇到这种问题的时候就可以解决了。欢迎各位大神指正。