为什么 __SCROLLPOSITIONY 在 IE 中不被识别?它抛出未定义的 JS 运行时错误
Why is __SCROLLPOSITIONY is not recognized in IE? It throws a JS runtime error of undefined
我有一些代码可以帮助在回发后保持一些弹出窗口 div 可见,因为在我们的 asp.net 页面中我们将 MaintainScrollPositionOnPostback
设置为 true。我正在做的是获取垂直滚动的数量并通过该值偏移 div 的位置,以便在保持垂直滚动的回发之后,新的弹出窗口 div 将在视图中居中.这在 Chrome 中运行良好(当然),但是在 IE 11 中测试时,我遇到了这个 javascript 运行时错误:0x800a1391 - JavaScript runtime error: '__SCROLLPOSITIONY' is undefined
。
这是出现问题的那行JS代码,很简单:
var topValue = parseInt(__SCROLLPOSITIONY.value);
如何在 IE 11 中找到该值?我意识到(可能)有更好的解决方案,包括使用警报,但出于时间限制和一致性等原因,我们不要走这条路。感谢您的帮助!
当您使用 MaintainScrollPositionOnPostBack 时,ASP 会为滚动位置生成隐藏字段并注入一些脚本,对于 Microsoft 浏览器,您必须通过在 JavaScript 中使用检查以不同方式处理此问题,称为__nonMSDOMBrowser,这是我在网上找到的一个使用示例。
function WebForm_RestoreScrollPosition() {
if (__nonMSDOMBrowser) {
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
}
else {
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
}
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
return theForm.oldOnLoad();
}
return true;
}
theForm.oldOnLoad = theForm.onLoad;
theForm.onLoad = WebForm_RestoreScrollPosition;
我知道这不完全是你想要的,但它应该足以为你指明正确的方向并给你一些尝试。
我有一些代码可以帮助在回发后保持一些弹出窗口 div 可见,因为在我们的 asp.net 页面中我们将 MaintainScrollPositionOnPostback
设置为 true。我正在做的是获取垂直滚动的数量并通过该值偏移 div 的位置,以便在保持垂直滚动的回发之后,新的弹出窗口 div 将在视图中居中.这在 Chrome 中运行良好(当然),但是在 IE 11 中测试时,我遇到了这个 javascript 运行时错误:0x800a1391 - JavaScript runtime error: '__SCROLLPOSITIONY' is undefined
。
这是出现问题的那行JS代码,很简单:
var topValue = parseInt(__SCROLLPOSITIONY.value);
如何在 IE 11 中找到该值?我意识到(可能)有更好的解决方案,包括使用警报,但出于时间限制和一致性等原因,我们不要走这条路。感谢您的帮助!
当您使用 MaintainScrollPositionOnPostBack 时,ASP 会为滚动位置生成隐藏字段并注入一些脚本,对于 Microsoft 浏览器,您必须通过在 JavaScript 中使用检查以不同方式处理此问题,称为__nonMSDOMBrowser,这是我在网上找到的一个使用示例。
function WebForm_RestoreScrollPosition() {
if (__nonMSDOMBrowser) {
window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, theForm.elements['__SCROLLPOSITIONY'].value);
}
else {
window.scrollTo(theForm.__SCROLLPOSITIONX.value, theForm.__SCROLLPOSITIONY.value);
}
if ((typeof(theForm.oldOnLoad) != "undefined") && (theForm.oldOnLoad != null)) {
return theForm.oldOnLoad();
}
return true;
}
theForm.oldOnLoad = theForm.onLoad;
theForm.onLoad = WebForm_RestoreScrollPosition;
我知道这不完全是你想要的,但它应该足以为你指明正确的方向并给你一些尝试。