После некоторых исследований я использовал механизм передачи сообщений html5, включенный в jQuery pluging , что делает его совместимым со старыми браузерами с использованием различных методов (некоторые из них описаны в этой теме).1004 * Конечное решение очень просто.
На странице хоста (родительской):
// executes when a message is received from the iframe, to adjust
// the iframe's height
$.receiveMessage(
function( event ){
$( 'my_iframe' ).css({
height: event.data
});
});
// Please note this function could also verify event.origin and other security-related checks.
На странице iframe:
$(function(){
// Sends a message to the parent window to tell it the height of the
// iframe's body
var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
$.postMessage(
$('body').outerHeight( true ) + 'px',
'*',
target
);
});
Я тестировал это на Chrome 13+, Firefox 3.6+, IE7, 8 и 9 на XP и W7, сафари на OSX и W7.;)