Добавление target = "_ blank" к ссылкам в iframe без использования <body onload> - PullRequest
2 голосов
/ 23 декабря 2010

Я пытаюсь изменить ссылки в 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 ]

2 голосов
/ 23 декабря 2010

Попробуйте

$("#iframeid").load(function(){
    // your code
});
0 голосов
/ 23 декабря 2010

Вы можете установить функцию тайм-аута, периодически проверяя, если

iframe.document.readyState == 'complete'
0 голосов
/ 23 декабря 2010

Пойди с:

$(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"; }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...