我用window.pageYOffset
找到滾動條的位置(在Firefox正常工作),但它是在IE10Internet Explorer的10和top.window.pageYOffset
總是不確定我已經嘗試使用:
window.pageYOffset // undefined
document.body.scrollTop // always 0
document.documentElement.scrolltop // undefined
top.window.scrollY // undefined
這是IE10的一個已知問題?
這是啓用兼容模式。沒有它,pageYOffset按預期工作。我們必須使用兼容模式,因爲這是我們客戶的要求
代碼顯示一個calander,它需要在文本框中顯示。當用戶在頁面上滾動它的位置將發生改變:用代碼已更新 :
function showCalendar(e, datePicker) {
top.calendarReturnFunc = function(value, controlId) {
getDatePicker(controlId).dateBox.hasDate = "True";
dateChosen(value, controlId, true);
};
top.datePickerActive = function() { return true; };
var itop = top.window.screenTop != undefined ? top.window.screenTop : parseInt(top.window.screenY) + parseInt(130);
var ileft = top.window.screenLeft != undefined ? top.window.screenLeft : parseInt(top.window.screenX);
var x = e.screenX - parseInt(ileft);
var y;
if (typeof top.window.pageYOffset === "undefined") {
y = (e.screenY - parseInt(itop) - datePicker.yOffset) + document.documentElement.scrollTop; //IE10?...
}
else {
y = (e.screenY - parseInt(itop) - datePicker.yOffset) + top.window.pageYOffset; //works fine in firefox
}
if (datePicker.alignLeft) {
x -= 180;
}
if (!datePicker.alignBottom) {
y -= 178;
}
_calendar.style.left = x + "px";
_calendar.style.top = y + "px";
_calendar.style.display = "block";
_calendar.datePicker = datePicker;
_calendar.callingFrame = this;
_calendar.src = datePicker.calendarUrl + "&Date=" + escape(datePicker.dateBox.value);
}
你試過'window.top.scrollY'嗎? – andlrc
葉剛試過,仍然沒有定義。感謝您的回覆:) – Alex
'window.pageYOffset'適用於IE10。 – Christoph