繁体   English   中英

从iframe中访问父Javascript函数?

[英]Accessing parent Javascript function from within iframe?

我正在尝试访问一个函数,该函数将从iframe页面中更新位于父级中的JQuery UI进度栏。 每当有人单击iframe页面中的链接时,我都希望它更新进度条。 我一直在寻找答案,并使用“ window.parent.FunctionName()”作为给出的解决方案,但是由于某种原因,它似乎在我的情况下不起作用? 有任何想法吗?

更新:似乎可以在Safari,Firefox中使用,但在Chrome中不起作用???

我要在父页面中访问的功能是:

var percentage = 0;                                                                 

$('ul li a').one('click', updateBar);                                               

function updateBar() {
    percentage += 8;                                                                
    $('.ui-progressbar-value').stop().animate({ width: percentage+"%" }, 500)       
    $('.middle').progressbar('option','value', percentage);                         

    if(percentage > 100) {                                                  
        $('ui-progressbar-value').stop().animate({ width: "100%"}, 500);            
    }
}

我从iframe页面调用的JQuery调用是:

$('#sidenav ul li a').one('click', window.parent.updateBar); 

尝试

$('#sidenav ul li a').one('click',function(){

 window.parent.updateBar();

}); 
  1. 确保jQuery也嵌入框架内
  2. 您的方法应该可以使用,但是函数执行的上下文是父窗口。 如果您想使用框架作为上下文执行函数,请提供上下文作为参数:

 function updateBar(context) {
    percentage += 8;                                                                
    $('.ui-progressbar-value',context).stop().animate({ width: percentage+"%" }, 500)       
    $('.middle',context).progressbar('option','value', percentage);                         

    if(percentage > 100) {                                                  
        $('ui-progressbar-value',context).stop().animate({ width: "100%"}, 500);            
    }
}

$('#sidenav ul li a').one('click', function(){window.parent.updateBar(document);}); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM