2012-07-25 85 views
4

我有一個iframe,我想將它的邊框設置爲零。jQuery/Javascript:從iframe中設置iframe的邊框

但我想從裏面做 iframe,使用javascript或jQuery。

如何做到這一點?非常感謝,

+4

請問包含它是對同一產地的文件嗎?因爲如果沒有,你會點擊[SOP](http://en.wikipedia.org/wiki/Same_origin_policy),因爲要刪除'iframe'上的邊框,你必須修改包含的文檔(至少,作爲據我所知)。 – 2012-07-25 11:56:00

+1

感謝您的建議。他們在不同的領域;( – Eamorr 2012-07-25 12:02:04

+0

@ Eamorr:啊,好吧,那麼我下面的答案是正確的,只是對你不太有用。:-) – 2012-07-25 12:06:10

回答

3

如果父母的身份不同,則不能這樣做,因爲Same Origin Policy禁止訪問父母的內容。

如果父文件是在同一個起源,這應該這樣做:

(function() { 
    var frames = window.parent.document.getElementsByTagName("iframe"), 
     index, 
     frame; 

    for (index = 0; index < frames.length; ++index) { 
    frame = frames[index]; 
    if (frame.contentWindow == window) { 
     frame.frameBorder = "none"; 
    } 
    } 
})(); 

Live example | source of parent | source of frame

請注意,這是重要的比較window性能時使用==,而不是===(異常,window是特殊的)。

3

你可以做到$(parent.document).find('#myIframe').css('border', 'xxxx'); - 但正如上面的評論指出的,這兩個頁面(主iframe中顯示的)應該在同一個域中 - 否則你由於相同的原產地政策,最終會出現安全異常。

2

或者您可以使用父母。$

parent.$("iframe").prop("frameborder", 0); // This will change all iframes 
parent.$("#IframeID").prop("frameborder", 0); // This will change single iframe