gpt4 book ai didi

javascript - 为什么 IE 不识别 __SCROLLLPOSITIONY?它抛出未定义的 JS 运行时错误

转载 作者:行者123 更新时间:2023-12-03 04:24:57 24 4
gpt4 key购买 nike

我有一些代码可以帮助在回发后保留一些弹出 div 在 View 中,因为在我们的 asp.net 页面中,我们将 MaintainScrollPositionOnPostback 设置为 true。我正在做的是获取垂直滚动量并按此值偏移 div 的位置,以便在维持垂直滚动的回发后,新的弹出 div 将在 View 中居中。这在 Chrome 中工作得很好(当然),但是当在 IE 11 中测试它时,我遇到了这个 javascript 运行时错误:0x800a1391 - JavaScript 运行时错误:'__SCROLLLPOSITIONY' 未定义

这是发生问题的 JS 代码行,非常简单:

var topValue = parseInt(__SCROLLPOSITIONY.value);

如何在 IE 11 中找到该值?我意识到对此有(可能)更好的解决方案,包括使用警报,但出于时间限制和一致性等原因,我们不要走这条路。感谢您的帮助!

最佳答案

当您使用MaintainScrollPositionOnPostBack时,ASP会生成滚动位置的隐藏字段并注入(inject)一些脚本,对于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;

我知道这不完全是您所追求的,但它应该足以为您指明正确的方向并为您提供一些尝试的机会。

关于javascript - 为什么 IE 不识别 __SCROLLLPOSITIONY?它抛出未定义的 JS 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43787881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com