zoukankan      html  css  js  c++  java
  • 跨页面调取方法,也就是说从a页面调取b页面的方法

      只能说才疏学浅,就这个问题折磨了我好久,快到要交差的时候才解决。

      从发现这个问题我试了三种解决方式,首先当然是要用公共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();

      就这样,这个问题也算解决了,但是解决问题的过程不太美妙,东想西凑,总是想找最简单的方式解决,还是要钻研每一个方法,争取都学明白。

      这只是针对自己的一次整理,想把方法记录下来,下次遇到这种问题的时候就可以解决了。欢迎各位大神指正。

  • 相关阅读:
    给图片加自定义字体水印
    [ZT]互联网网站应该如何存储密码?
    【Best Practice】在JAVA里面反序列化.NET的对象。
    关于权限验证的两篇好文
    U盘安装Ubuntu遇到的奇怪问题
    const 用法
    程序员进级攻略
    搞混的指针数组与数组指针
    C/C++内存分配
    多个常见代码设计缺陷(转载)
  • 原文地址:https://www.cnblogs.com/yaoya/p/6475671.html
Copyright © 2011-2022 走看看