iframe使用location跳转页面的问题

iframe页面调用父级页面中的函数

  parent.dofunction();

  contentWindow 实例

iframe = document.getElementById("frame"); 
iframe.contentWindow.location = "http://mozilla.org"; 
iframe.contentWindow.history.back();

 

 

个人应用遇到的问题:

下面的方法实现如过标签未打开则打开标签,如果打开了则刷新标签页面。TabPanel 中包含iframe,在对已经打开的标签实现页面刷新时,开始使用window.parent.frames['frameid']获取iframe,再使用var href =  iframe.location.href得到iframe中的src属性,在chrome中能够正常使用,但在firefox中出现问题,后来查了很多资料说可以使用iframe.location,但是使用了过后,firefox出现TypeError: href is undefined,我给他加上''将其转为字符,后来不报错了,但是出现执行iframe.location=url 时不能刷新页面,化了很长时间找到了解决办法,办法就是使用 iframe.contentWindow.location = url 成功解决问题。

 1 function addTab(url,name,menuid,pathCh){
 2     var url = 'scs/'+url;
 3     var icon = "tab_blank.png ";    
 4     var id = "tab_id_" + menuid;
 5     if (url == "#" || url == "") {
 6         return;
 7     } else {
 8         var index = url.indexOf(".do");
 9         if (index != -1)
10             url = url + "&menuid4Log=" + menuid;
11         var n = window.parent.mainTabs.getComponent(id);
12         if (!n) {
13             var endIeStatus = document.getElementById("endIeStatus");
14             if (document.createEvent) {
15                 var ev = document.createEvent("HTMLEvents");
16                 ev.initEvent("click", false, true);
17             } else endIeStatus.click();
18             n = window.parent.mainTabs.add( {
19                 id : id,
20                 title : "<img align='top' class='IEPNG' src='./resource/image/ext/"+ icon + "'/>" + name,
21                 closable : true,
22                 layout : 'fit',
23                 listeners : {
24                     activate : function() {window.parent.Ext.getCmp('centerPanel').setTitle(pathCh);}
25                 },
26                 html : '<iframe id="ifrmae_id_' + menuid + '" scrolling="auto" frameborder="0" width="100%" height="100%" src=' + url + '></iframe>'
27                 //如果功能页面使用中心区域阴影加载模式则使用下面的代码unmaskCenterPanel();页面加载完毕后取消阴影
28                 //html:'<iframe scrolling="auto" frameborder="0" onload="unmaskCenterPanel()" width="100%" height="100%" src='+url+'></iframe>'
29             });
30         }else{
31             var iframe = window.parent.frames["ifrmae_id_" + menuid];
32             var href = iframe.location+'';
33             if (href.indexOf(url) == -1) {
34                 url ='../'+url;    
35             }
36             if(navigator.userAgent.indexOf('Firefox') >= 0){
37                 iframe.contentWindow.location= url;//兼容firefox不兼容chrome
38             }else{
39                 iframe.location = url;
40             }
41             
42         }
43         window.parent.Ext.getCmp('centerPanel').doLayout();
44         window.parent.mainTabs.setActiveTab(n);
45 
46     }

 

 

 

posted @ 2013-09-04 11:13  cgyue  阅读(5560)  评论(0编辑  收藏  举报
cgyue个人博客