2013-03-28 3 views
2

Я разрабатываю веб-приложение с использованием Spring MVC framework, в одном из моих модулей я внедрил для отображения сообщений пользователей и комментариев. Теперь моя проблема в том, что высота должна быть установлена ​​динамически на основе содержимого в . Для этого я использую следующий JavaScript. Он отлично работает в Firefox и Internet Explorer, но не в Google Chrome и Safari. Как решить эту проблему?Настройка динамической высоты для <iframe> в Google Chrome и Safari

function sizeFrame() { 
    jQuery("#myframe", top.document).css({ height: 0 }); 
         var iframe=document.getElementById('myframe'); 
       var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow; 
       var the_height=0; 
       if (iframeWin.document.body) { 
       the_height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; 
       } 
       jQuery("#myframe", top.document).css({ height: the_height }); 
       } 

      </script> 

ответ

2

Добавить следующий код в функции сценария Java, который решает проблему,

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 
var is_safari=navigator.userAgent.toLowerCase().indexOf('safari') > -1; 
if(is_chrome || is_safari) 
{ 
jQuery("#myframe", top.document).css({ height: 0 }); 
var myframe = jQuery("#myframe");var innerDoc = (myframe.get(0).contentDocument) ? myframe.get(0).contentDocument : myframe.get(0).contentWindow.document; 
var h; 
if(innerDoc.body.scrollHeight) 
h=innerDoc.body.scrollHeight+35; 
else 
h=innerDoc.documentElement.scrollHeight; 
jQuery("#myframe", top.document).css({ height: h }); 
} 
+0

Спасибо за ваше решение, это помогло мне много – speeday125

Смежные вопросы