Пожалуйста, прочтите документы: https://github.com/intuit/karate#rules-for-embedded-expressions
* def user = 'HELLOUSER'
* def temp = 'KGS-' + user + '-GS'
* def payload = { user: '#(temp)' }
Вы уверены, что это не Heisenbug? Если Вы устанавливаете высоту где-нибудь программно и затем пытаетесь считать ее скоро позже, существует случайный DOM, не обновил бы.
Попытайтесь вызвать функцию смещения однажды весь DOM, и изображения полностью загружаются с помощью load()
вместо document.ready().
$(window).load(function () {
//Put the code for the height here
});
Вы уверены, что элемент включен в дерево документов и представлен? (т.е. не “отобразитесь: ни один”, но “видимость: скрытый” в порядке.)
Элемент, который не является на самом деле принятием участия в процессе рендеринга документа, не имеет никаких размеров и даст offsetWidth/Height 0.
ETA после добавленного примера кода: с Вашим точным кодом я получаю offsetHeight на отделении ‘17’. Первое изображение измерено правильно, второе не имеет никакого размера.
Это корректно, как представлено (*). Любые изображения, которым не удается загрузиться, заменяются их сопроводительным текстом в качестве встроенного промежутка. Ваше изображение не имеет никакого сопроводительного текста, таким образом, оно заменяется пустой строкой. Обычно, как встроенный элемент, это не может быть установлено ни на какой конкретный размер. Исключением является первое изображение, потому что Вы дали его ‘дисплей: блок’, который делает это поддающимся явной калибровке обеспеченный шириной/высотой.
В Режиме Причуд у Вас были бы небольшие значки 'разорванного изображения', измерил то же, поскольку изображения, как предполагалось, были. Этого не происходит в Режиме Стандартов, потому что предполагается, что Вы знаете, как использовать сопроводительный текст правильно при использовании стандартов.
Так или иначе измерение размеров хорошо работает для меня, если я заменяю "..." URL с реальными рабочими адресами.
(*: хотя Вы не можете на самом деле видеть его из-за довольно странного, 'скрытого от переполнения' на HTML и ‘оставленного: 1597 пкс’; комбинация. Ну, если у Вас нет действительно широкого монитора!)
Загрузка этого файла с допустимым 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>