将target =“_ blank”附加到iframe中的链接而不使用

时间:2010-12-23 08:48:22

标签: javascript jquery html iframe

我正在尝试更改iframe中的链接以在新窗口中加载而不是iframe本身。目前我在head

中使用此代码
$(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属性中被触发时会起作用,但是我想避免使用该方法并在函数或文件中实现它。

3 个答案:

答案 0 :(得分:2)

尝试

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

答案 1 :(得分: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"; }
    }
});

答案 2 :(得分:0)

您可以定期设置超时功能,检查是否

iframe.document.readyState == 'complete'