2014-03-12 40 views
1

我需要以下條件:jQuery選擇到對象內容

我有一個html文件,其中我有一個iframe和對象。 iframe和對象都包含分離的html文件。

現在我想點擊iframe中的鏈接,這應該會影響對象內部的鏈接以隱藏。

如何使用jQuery選擇器來選擇對象html文件中的鏈接?

結構:

<html file parent> 
    <iframe> html site 1 with link to click</iframe> 
    <object> html site 2 with links to affect </object> 
<html file parent> 

提前感謝!

+0

歡迎來到SO。請[參觀](http://stackoverflow.com/tour)。顯示你已經嘗試了什麼,什麼沒有工作。 – naththedeveloper

回答

1

如果iframe的域與您的域不同,則這是不可能的。
這是一個JavaScript限制。

0

爲了達到此目的,您需要控制iframe中加載的網址。

如果它是相同的域,那麼你可以做到這一點。

0

如果您可以控制iframe的網址,請嘗試此操作。

首先,看看window.postMessage。使用這個,你可以從你的iframe發送一個事件到窗口父目標。監聽窗口父(當某事在您的IFRAME改變),那個事件,您將能夠使用這樣的語法來訪問任何元素object標籤中:

$('object').contents().find('linkSelector') 

給你的iframe的ID,讓我們說myIframe

<iframe id="myIframe"> html site 1 with link to click</iframe> 

獲取到的iframe一個參考:

var myIframe = document.getElementById('myIframe'); 

後從IFRAME消息:

myIframe.contentWindow.postMessage('iframe.clicked', 'http://your-domain.here.com'); 

處理器iframe的變化:

var handleIframeChange = function(e) { 
    // 
    if(e.origin == 'http://your-domain.here.com') { 
     // Get reference to your `object` tag 
     var objContent = $('object').contents(); 

     // For instance, let's hide an element with a class of `link-class-here` 
     objContent.find('.link-class-here').hide(); 
    } 
} 

偵聽父窗口通過iframe中發送的事件:

window.addEventListener('iframe.clicked', handleIframeChange, false); 

沒有測試它現在(在過去這樣做,當我有控制iframe)但它應該工作,但正如我所說,只有當你可以控制iframe。