2011-02-18 63 views
0

文件是否有任何理由爲什麼這不工作:的jQuery - 觸發事件從內部的iFrame的父

父文檔

$(document).ready(function($) { 
     $('.upload-media').click(function(){ 
      if($(this).parent().find('iframe')[0]) 
       return false; 
      $(this).parent().append('<iframe class="media-iframe" src="'+this.href+'"></iframe>'); 
      var ifr = $(this).parent().find('iframe'); 
      $(document).bind('closeFrame', function(){ alert("event"); }); 
      return false; 
     }); 
    }); 

的iFrame

$(document).ready(function() { 
    $("#media-frame-close").click(function(){ 
     window.parent.$(window.parent.document).trigger('closeFrame'); 
     return false; 
    }); 
}); 

似乎相當直截了當,我試過父母。而不是window.parent,這是行不通的:(

+0

什麼錯誤? – 2011-02-18 21:28:54

回答

2

我一直沒有找到一種方法來訪問文檔的jQuery觸發器,但如果你做到以下,你可以實現同樣的事情。

$(document).ready(function(){ 
    $('.frame').click(function(){ 
     if($(this).parent().find('iframe')[0]) 
     { 
      return false; 
     } 

     $(this).parent().append('<iframe class="media-iframe" src="'+this.href+'"></iframe>'); 

     var ifr = $(this).parent().find('iframe'); 

     // Adding function directly to the document rather than using jQuery.bind/trigger 
     document.closeFrame = function(){ alert("event"); }; 

     return false; 
    }); 
}); 

$(document).ready(function(){ 
    $("#media-frame-close").click(function(){ 
     window.parent.document.closeFrame(); 
     return false; 
    }); 
}); 

當然,這污染了文檔對象,而且它會做你想要什麼。

1

top.document從一個iframe效果很好(假設有iframe的jQuery的太)

$('#ID', top.document).someFunction();