1

我想在使用jQuery Fancybox在iFrame中打開的頁面中調用JavaScript函數。調用打開Fancybox彈出的iFrame中的JavaScript函數

  $(".testbox").fancybox({ 
       maxWidth : 800, 
       maxHeight : 600, 
       fitToView : false, 
       autoSize : false, 
       closeClick : false, 
       openEffect : 'none', 
       closeEffect : 'none', 
       afterShow: function() { 
         //var frameID = $('#fancybox-frame') 
         //frameID.getParam("test");       
        } 
      }); 

     $(".testbox").each(function() { 
       var element = this; 
       $(this).fancybox({ 
        'titleFormat' : function() { 
         var astring = '<span>' + element.id + '</span>'; 
         alert(astring); 
        } 
       }); 
      }); 

HTML:

<a class="testbox fancybox.iframe" href="include/testFrame.html">Iframe</a> 

在testFrame.html功能我試圖撥打:

 function getParam(param) {    
      alert(param);    
     } 

通常調用的iFrame功能,當不使用我會做到這一點Fancybox popup:

 document.getElementById('myFrame').contentWindow.getParam(); 

但我不知道如何在使用Fancybox時獲得整個iFrame的ID。任何幫助表示讚賞!

編輯: 我也試過這個代碼也沒有工作,我得到的錯誤在IE中:對象不支持此屬性或方法。我確信我加載頁面所具有的功能

var $f = $("#fancybox-frame"); 
    var fd = $f[0].document || $f[0].contentWindow.document; 
    fd.getparam("test"); 

回答

1

你應該使用:

var $f = $("#fancybox-frame"); 
$f[0].contentWindow.getParam("test"); 

原因:

  • 的方法是全局聲明,而不是作爲一種方法的document對象。
  • JavaScript區分大小寫; getParam不同於getparam
+0

謝謝!這工作。 – orikon