2010-10-07 98 views
0

我有一箇舊的時尚頁面,使用包含頂部框架和底部框架的框架集。該框架是「index.html的」定義,我的代碼如下:攔截鏈接點擊從框架

<html> 
<head> 

<script src="jquery-1.4.2.min.js" type="text/javascript"></script> 

<script> 

    $(document).ready(function(){ 

     $('#mainFrame').ready(function() { 

      $('#mainFrame a').live('click', function() { 
       alert('u click'); 
       return false; 
      }); 

     }); 

    }); 

</script> 

</head> 
<frameset id="main" rows="125,*" cols="*"> 
<frame src="header.html" name="headerFrame" id="headerFrame" /> 
<frame src="main.html" name="mainFrame" id="mainFrame" /> 
</frameset> 
</html> 

我想能夠攔截被點擊的框架「的mainFrame」鏈接。我想我可以爲它添加一個準備好的事件,然後實時綁定點擊事件,但它不起作用。有任何想法嗎?

注意:這些文件都在同一個域中,因此這不是XSS問題。

回答

2
<script> 
$(document).ready(function(){ 
    $('#mainFrame').ready(function() { 
    var f = document.getElementById('mainFrame').contentWindow.document; 
    $('a', f).live('click', function() { 
     alert('u click'); 
     return false; 
    }); 
    }); 
}); 
</script> 

你只需要添加一個上下文jQuery的聲明,告訴它在哪裏尋找#mainFrame一個

噢....你一定要確保的iframe加載。 「活着」應該照顧這一點...但我正在做一些事情,現在我必須爲jQuery編寫定製ready()插件,以確保我的框架已加載,因爲我遇到了Chrome的問題。

Chrome和IE似乎跳槍上與document.addEventListener(「DOMContentLoaded」 ......我相信這是什麼就緒()函數jQuery中使用。

不管怎麼說,只要確保你的iframes一路裝入。