2011-09-06 28 views
0

我有一個HTML網頁不超過兩次的I幀在製作IFRAME聽同一事件的父母和同步使用jQuery

<body> 
    <table border="1" width="100%" height="100%"> 
    <tr> 
     <th><iframe class="isiframe" width="100%" height="100%" src="/example"></iframe></th> 
     <th><iframe class="isiframe" width="100%" height="100%" src="/example"></iframe></th> 
    </tr> 
    </table> 
</body> 

我已經給click事件的所有標籤中的網頁內的同一個域IFRAME

$('a').bind('click', function(e){ 
     var path = $(this).getPath(); 
     var ahash={ 
        'path':path 
       }; 
     if (getFrameElement()) 
     window.parent.document.Aaddevent(e, ahash); 
}); 

click事件中的 「路徑」 給出了點擊的標籤(例如HTML>身體> DIV#欄> UL#abc.def.ghi>李#富)的路徑。 getFrameElement()返回被點擊的框架。現在我想要做的就是使用這個路徑並觸發其他iframe中的點擊事件

我已經定義了sendevent函數,從另一個iframe獲取父iframe的事件,並觸發相同的事件作爲父母和同步。

document.sendevent=function(e, ahash){ 
    var iframes= parent.document.getElementsByTagName('iframe'); 
    for (var i= iframes.length; i--;) { 
     var iframe= iframes[i]; 
     if(iframe){ 
        $(ahash.path).trigger('click'); 
        } 
    } 
}; 

這是我想做的事情,使iframe的工作,跟隨父IFRAME點擊的元素的路徑,然後觸發點擊事件,使其他的iframe使用路徑

與母公司的iframe同步

在sendevent函數中沒有觸發click事件,但是當我在sendevent函數內執行console.log(ahash .path)時,我得到了父iframe單擊元素的路徑。我如何使這個方法工作或類似的東西。請告訴我一些解決方案如何做到這一點。

回答

0

您不能使用$("a").trigger("click")關注鏈接。您可以使用location.href = $("a").attr("href")。如果您只是試圖在兩個框架中導航到相同的網址,請不要打擾.getPath(),只需通過href即可。在你的父頁面,使用綁定在第一幀的鏈接,也瀏覽了第二架:

$("iframe:first").contents().find("a[href]").click(function() { 
    $("iframe:last", top.document)[0].contentWindow.location.href = this.href; 
}); 

編輯:在IE和Firefox和Opera的新版本,你可以使用本地DOM方法.click()模擬鏈接上的實際點擊。 Chrome目前還不支持,但最終可能會。要使用.getPath(),以便找到並點擊鏈接,試試這個父頁面:

$("iframe:first").load(function() { 
    $(this).contents().find("a[href]").click(function() { 
     $("iframe:last", top.document).contents().find($(this.getPath())[0].click(); 
    }); 
}); 
+0

是的,我想導航到兩幀相同的URL和我提出較早可行的,但現在它是必要的我使用.getPath()並按照其他iframe中的父iframe的鏈接,因爲href通過jquery – user850234

+0

設置是否有可能,如果我點擊鏈接或同一個域中的網頁中的選項卡,而不是更改src of iframe,將單擊元素的路徑傳遞給另一個iframe以同步iframe? – user850234

+0

@ user85 - 我編輯了我的答案。 – gilly3