Почему jQuery возвратился бы 0 для offsetHeight, когда поджигатель говорит, что это 34?

Пожалуйста, прочтите документы: https://github.com/intuit/karate#rules-for-embedded-expressions

* def user = 'HELLOUSER'
* def temp = 'KGS-' + user + '-GS'
* def payload = { user: '#(temp)' }

7
задан 15 revs, 4 users 99% 15 November 2011 в 05:43
поделиться

4 ответа

Вы уверены, что это не Heisenbug? Если Вы устанавливаете высоту где-нибудь программно и затем пытаетесь считать ее скоро позже, существует случайный DOM, не обновил бы.

4
ответ дан 6 December 2019 в 23:13
поделиться

Попытайтесь вызвать функцию смещения однажды весь DOM, и изображения полностью загружаются с помощью load() вместо document.ready().

$(window).load(function () {
    //Put the code for the height here
});
1
ответ дан 6 December 2019 в 23:13
поделиться

Вы уверены, что элемент включен в дерево документов и представлен? (т.е. не “отобразитесь: ни один”, но “видимость: скрытый” в порядке.)

Элемент, который не является на самом деле принятием участия в процессе рендеринга документа, не имеет никаких размеров и даст offsetWidth/Height 0.

ETA после добавленного примера кода: с Вашим точным кодом я получаю offsetHeight на отделении ‘17’. Первое изображение измерено правильно, второе не имеет никакого размера.

Это корректно, как представлено (*). Любые изображения, которым не удается загрузиться, заменяются их сопроводительным текстом в качестве встроенного промежутка. Ваше изображение не имеет никакого сопроводительного текста, таким образом, оно заменяется пустой строкой. Обычно, как встроенный элемент, это не может быть установлено ни на какой конкретный размер. Исключением является первое изображение, потому что Вы дали его ‘дисплей: блок’, который делает это поддающимся явной калибровке обеспеченный шириной/высотой.

В Режиме Причуд у Вас были бы небольшие значки 'разорванного изображения', измерил то же, поскольку изображения, как предполагалось, были. Этого не происходит в Режиме Стандартов, потому что предполагается, что Вы знаете, как использовать сопроводительный текст правильно при использовании стандартов.

Так или иначе измерение размеров хорошо работает для меня, если я заменяю "..." URL с реальными рабочими адресами.

(*: хотя Вы не можете на самом деле видеть его из-за довольно странного, 'скрытого от переполнения' на HTML и ‘оставленного: 1597 пкс’; комбинация. Ну, если у Вас нет действительно широкого монитора!)

5
ответ дан 6 December 2019 в 23:13
поделиться

Загрузка этого файла с допустимым IMG SRC дает 3 окна предупреждений "37". Без допустимого IMG SRC это дает "17" на всех трех. Какую версию JQuery Вы используете? И который версия FireFox/IE?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN"><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<HTML style="OVERFLOW: hidden; HEIGHT: 100%" xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
    <script type="text/javascript" src="jquery.js"></script>
</HEAD>
<BODY>
    <FORM id="aspnetForm" name="aspnetForm" action="blah.aspx" method="post">
        <DIV id="container">
            <DIV id="ctl00_BodyContentPlaceHolder_Navigation" style="Z-INDEX: 1; LEFT: 1597px; POSITION: absolute; TOP: 67px">
                <DIV class="TransparentBg" id="TransparentDiv" style="MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; HEIGHT: 94px; TEXT-ALIGN: center">
                </DIV>
                <DIV class="Foreground" id="ForegroundId" style="MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; TEXT-ALIGN: center">
                    <DIV id="ctl00_BodyContentPlaceHolder_Navigation1" title="Click to pan the map." style="WIDTH: 52px; COLOR: black; HEIGHT: 52px; BACKGROUND-COLOR: transparent; -moz-user-focus: normal">
                        <IMG style="FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale src='../images/image.gif'); CURSOR: pointer" height="52" hspace="0" src="..." width="52" /> 
                    </DIV>
                    <DIV id="ctl00_BodyContentPlaceHolder_UserControl" name="ctl00_BodyContentPlaceHolder_UserControl">
                        <IMG style="DISPLAY: block; VERTICAL-ALIGN: bottom; CURSOR: pointer" height="17" src="je_fanmap_unavailable.JPG" width="16" />
                        <IMG style="VERTICAL-ALIGN: top; CURSOR: pointer" height="17" src="je_fanmap_unavailable.JPG" width="16" />
                    </DIV>
                </DIV>
            </DIV>
            <script type="text/javascript">
                $(window).load(function () {
                alert($("#ctl00_BodyContentPlaceHolder_UserControl").attr('offsetHeight'));
                alert(document.getElementById("ctl00_BodyContentPlaceHolder_UserControl").offsetHeight);
                alert($("#ctl00_BodyContentPlaceHolder_UserControl").height());
                });
            </script>
        </DIV>
    </FORM>
</BODY>

1
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: