2013-10-17 60 views
0

我有一個加載頁面的iframe,當點擊一個按鈕時,加載包含鏈接的動態內容。我需要將所有這些鏈接的目標從_blank更改爲_self - 但我完全停留在每次新內容加載到iframe時如何讓代碼運行。我試過很多的選擇,最近一次是到點擊功能添加到IFRAME作爲觸發運行代碼:如何使用jQuery或javascript訪問iframe的內容

$("#myFrame").click(function() { 
    $('#myFrame').find('a[target="_blank"]').each(function() { 
    $(this).attr('target', '_self'); 
    }); 
}); 

如何找到動態生成的內容,並更改鏈接目標一旦內容有在iframe中完成加載?沒有「同源策略」問題,因爲iframe中的頁面位於同一個域中。

謝謝。

+0

您可以創建HTTP:/ /jsfiddle.net/爲您嘗試到目前爲止,以便我們可以找出確切的問題併爲您解決它。 –

回答

2

使用JavaScript來讓你的iframe的DOM這樣的:

var doc=window.frames[ "yourFrameName" ].document 

注:使用name沒有id或你的框架的class如果您遵循上述規則,讓您的框架

的DOM

此更改jquery對象

var elem=$(doc); 

ñ在elem流結合的Click事件,你正在做的代碼在你的問題

elem.click(function() { 

elem.find('a[target="_blank"]').each(function() { 

    $(this).attr('target', '_self'); 
}); 

}); 
+0

我意識到我沒有留下任何東西 - 通過首先選擇多個鏈接之一來加載iframe本身,因此在頁面加載時它是空的。通過將你的代碼封裝在一個框架onload函數中,它可以很好地工作。更好的是,我完全理解你做了什麼。感謝一個非常明確的教訓。 – sideroxylon

0

可以使用的內容()方法

下面是一個例子:

$("#myiframe").contents().find("#myContent") 
相關問題