Вычисление высоты и ширины страницы или документа в iframe, javascript

Чтобы вычислить реальные размеры страницы или документа загруженного в iframe, воспользуйтесь следующим javascript кодом. Если размеры окна браузера больше размеров документа, т.е нет необходимости прокручивать страницу, то функция возвращает значения высоты и ширины окна. В противном случае функция сообщает высоту и ширину документа, т.е размеры окна плюс количество пикселей необходимых для прокрутки.
<script type="text/javascript" language="javascript">
function getDocumentSize(doc) { // getting a real size document with scrolling etc.
  var r = { width: 0, height: 0 };
 
  var width1=0, width2=0, width3=0, width4=0, maxWidth=0;
  var height1=0, height2=0, height3=0, height4=0, maxHeight=0;
  
  
  if (doc.width) maxWidth = doc.width; 
  if (doc.body) { 
	if (doc.body.scrollWidth) width1 = doc.body.scrollWidth;
	if (doc.body.offsetWidth) width2 = doc.body.offsetWidth; 
  }
  if (doc.documentElement) {
	width3 = doc.documentElement.scrollWidth; 
	width4 = doc.documentElement.clientWidth;
  } 
  
  maxWidth = Math.max(Math.max(Math.max(width1, width2), Math.max(width3, width4)),maxWidth);
  
  if (doc.height) maxHeight = doc.height;
  if (doc.body) {
	if (doc.body.scrollHeight) height1 = doc.body.scrollHeight;
	if (doc.body.offsetHeight) height2 = doc.body.offsetHeight;
  }
  if (doc.documentElement) {
	height3 = doc.documentElement.scrollHeight;
	height4 = doc.documentElement.clientHeight;
  }
  maxHeight = Math.max(Math.max(Math.max(height1, height2), Math.max(height3, height4)),maxHeight);
  
  r.width = maxWidth;
  r.height = maxHeight;
  
  return r;
}
</script>

Пример использования

<a href="javascript:void(0)"
  onClick="alert('width=' + getDocumentSize(document).width + ' height=' + getDocumentSize(document).height);"> получить размеры документа (высота и ширина)</a>
<br>
<a href="javascript:void(0)" 
  onClick="alert('width=' + getDocumentSize(window.frames['iframe_name'].document).width + ' height=' + getDocumentSize(window.frames['iframe_name'].document).height);">
  вычислить высоту и ширину документа в iframe</a>

Примечание

Документ в iframe должен быть загружен с того же домена, что и родительская страница, иначе скрипт не будет работать из-за ограничений безопасности
ФайлРазмер
Пример: ex-get-document-size.htm2.31 KB

Комментарии

А не проще ли <iframe

А не проще ли <iframe onload="this.height=this.contentWindow.document.body.scrollHeight;"... >??

Почему то не работает размер

Почему то не работает размер документа в iframe. загрузка выполняется с одного домена... в коде вместо iframe_name указал имя моего iframe... что может быть не так?...

проверьте также наличие WWW в

проверьте также наличие WWW в ссылке. www.domain.com и domain.com - это разные домены

Большое спасибо!

Большое спасибо!

Спасибо очень помогло......

Спасибо очень помогло......

Добавить комментарий

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Copy the characters (respecting upper/lower case) from the image.