У меня есть функция javascript (календарь эпох), которая отображает календарь, когда фокус установлен на определенные текстовые поля.это хорошо работает в ie8, ff (все версии, насколько я могу проверить), opera и т. д., но не работает в ie7 или в предыдущих версиях.
Если я настрою его на пустой html тестовой странице, он будетЯ уверен, что это конфликт с моим CSS (предоставленным мне дизайнером).
Я проследил ошибку до этих строк кода -
Epoch.prototype.getTop = function (element) //PRIVATE: returns the absolute Top value of element, in pixels
{
var oNode = element;
var iTop = 0;
while(oNode.tagName != 'BODY') {
iTop += oNode.offsetTop;
oNode = oNode.offsetParent;
}
return iTop;
};
Epoch.prototype.getLeft = function (element) //PRIVATE: returns the absolute Left value of element, in pixels
{
var oNode = element;
var iLeft = 0;
while(oNode.tagName != 'BODY') {
iLeft += oNode.offsetLeft;
oNode = oNode.offsetParent;
}
return iLeft;
};
Подробнеев частности, если я удаляю фактические циклы while, то в календаре будет отображаться «ОК», просто что его позиционирование на странице неверно?element '
<script type="text/javascript">
window.onload = function() {
var bas_cal, dp_cal, ms_cal;
dp_cal = new Epoch('epoch_popup', 'popup', document.getElementById('<%=txtDateOfDiag.ClientID%>'));
dp_cal = new Epoch('epoch_popup', 'popup', document.getElementById('<%=txtDOB.ClientID%>'));
};
</script>
Примечание. Я использую главные страницы asp.net, поэтому существует необходимость в .ClientID
РЕДАКТИРОВАТЬ
Дальнейшее обновление - я воссоздал это без применения css (но включая файл .js, предоставленный дизайнером), код все еще работает нормально, что, должно быть, какой-то конфликт между CSS и моим JavaScript?