Правильные размеры HTML-элемента IE6 - PullRequest
1 голос
/ 05 октября 2008

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

document.body.clientHeight
, но в IE6 кажется, что я всегда получаю горизонтальные и вертикальные полосы прокрутки, потому что элемент должно быть немного слишком большим.

Теперь я действительно не хочу использовать специфичную для браузера логику и вычитать пиксель или 2 из каждого измерения только для IE6. Кроме того, я не использую CSS (ширина: 100% и т. Д.) Для этого, потому что мне нужно количество пикселей.

Кто-нибудь знает лучший способ заполнить область просмотра элементом в IE6 + (очевидно, также во всех хороших браузерах)?

Редактировать: Спасибо Оуэн за предложение, я уверен, что jQuery будет работать. Я должен был указать, что мне нужно решение, не зависящее от инструментария.

Ответы [ 3 ]

3 голосов
/ 05 октября 2008

рассматривали ли вы использование jQuery ? он абстрагирует большинство специфических для браузера функций в общий интерфейс.

var width = $(document).width();
var height = $(document.height();

$('#mySpecialElement').width(width).height(height);
3 голосов
/ 05 октября 2008

Это может помочь делу ...

С http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/:

<script type="text/javascript">
<!--

 var viewportwidth;
 var viewportheight;

 // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

 if (typeof window.innerWidth != 'undefined')
 {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
 }

// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

 else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
 {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
 }

 // older versions of IE

 else
 {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
 }
document.write('<p>Your viewport width is '+viewportwidth+'x'+viewportheight+'</p>');
//-->
</script>
1 голос
/ 10 октября 2008

Ах, ха! Я забыл про

document.documentElement.clientLeft
и
document.documentElement.clientTop
.

Их было 2 в IE и 0 в хороших браузерах. Таким образом, используя

var WIDTH = ((document.documentElement.clientWidth - document.documentElement.clientLeft) || document.body.clientWidth);
и т.д. сделали свое дело, похожая идея для высоты!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...