2010-12-23 60 views
2

我試圖更改iframe中的鏈接,以便在新窗口中加載而不是iframe本身。目前我在head使用此代碼:將目標=「_ blank」添加到iframe中的鏈接而不使用<body onload>

$(document).ready(function() { 
    var oIFrame = document.getElementById("iframeID"); 
    var oDoc = (oIFrame.contentWindow || oIFrame.contentDocument); 
    if(oDoc.document) oDoc = oDoc.document; 
    var links = oDoc.getElementsByTagName("a"); 
    for(var i=0; i<links.length; i++) { links[i].target="_blank"; } 
}); 

然而,上面的代碼被觸發前的iframe滿載的內容。我知道如果代碼在body的onload屬性中被觸發,這個代碼會起作用,但是我想避免使用這個方法,而是在函數或文件中實現它。

回答

2

嘗試

$("#iframeid").load(function(){ 
    // your code 
}); 
+0

沒有,之前沒有工作太..觸發器iFrame的內容被加載.. – CincauHangus 2010-12-23 09:02:26

+0

@CincauHangus;不,這會在iframe內容被完全加載時觸發。這應該工作。 – 2010-12-23 10:47:38

0

有一展身手:

$(document).ready(function() { 
    var oIFrame = document.getElementById("iframeID"); 
    var oDoc = (oIFrame.contentWindow || oIFrame.contentDocument); 
    if(oDoc.document) oDoc = oDoc.document; 
    $(oDoc).ready(function(){ 
     var links = oDoc.getElementsByTagName("a"); 
     for(var i=0; i<links.length; i++) { links[i].target="_blank"; } 
    } 
}); 
0

您可以設置超時功能,定期檢查,如果

iframe.document.readyState == 'complete' 
相關問題