Как узнать, когда готов iframe? - PullRequest
1 голос
/ 28 февраля 2012

У меня есть фрейм внутри веб-страницы, и я хочу сделать что-нибудь, когда он будет готов.Я пробовал 2 способа:

  • На родительской странице я использую этот

    jQuery('#iframe').load(function() {
     //my code here
    });
    

этот код будет выполнен после завершения iframeзагружается (как я хотел), но поскольку мой iframe указывает на другой домен, поэтому на данный момент я не могу получить доступ к его содержимому (проблема междоменных доменов)

  • Внутри iframe,Я использую это:

     jQuery('body').ready(function() {
     });
    

Этот код выполняется, когда начинается загрузка iframe, что намного раньше, чем я хочу, поэтому код не может функционировать должным образом.

Как я выполняю код, когда iframe завершает загрузку и готов к DOM-манипуляции

Я искал и обнаружил, что easyXDM может быть решением, но мне интересно, существует ли более простое решение.

Спасибо.

Ответы [ 3 ]

1 голос
/ 28 февраля 2012
У

подчеркивания есть удобный метод отсрочки, который я использовал для таких вещей, попробуйте:

$('#iframe').load(function() { 
    _.defer(function(){
        //your code here 
    });
});
0 голосов
/ 12 марта 2012

Поскольку вы хотите знать, когда готов iframe, и хотите получить доступ к контенту из этого междоменного домена iframe, я думаю, что easyXDM был бы хорошим выбором. и просто добавьте свой код в метод onReady.

0 голосов
/ 28 февраля 2012

не используйте jquery, это приведет к путанице в знаниях JavaScript,

Вы можете использовать следующий код

<script type="text/javascript">
    function show(){
        var iframe=document.getElementById('aa');
        var h=iframe.contentWindow.document.body.offsetHeight;
        alert(h)    
    }
</script>
</head>
<body>
<iframe id="aa" src="3.html" frameborder="0" scrolling="no" width="100%" height="200" onload="show()"></iframe>
</body>
...