Asp.net “;MaintainScrollPositionPostback=&x201D;真“”;不适用于谷歌浏览器
Web.config级别=>pages MaintaintScrollPositionOnPostback=“true”/>Asp.net “;MaintainScrollPositionPostback=&x201D;真“”;不适用于谷歌浏览器,asp.net,vb.net,cross-browser,master-pages,webusercontrols,Asp.net,Vb.net,Cross Browser,Master Pages,Webusercontrols,Web.config级别=>pages MaintaintScrollPositionOnPostback=“true”/> 页面级别=> 代码级别=>Page.maintaintScrollPositionOnPostback=true 浏览器级别=>Browser id=“Chrome”parentID=“Safari1Plus”> 能力> 功能名称=“支持维护CrollPositionOnPostBack”值=“true”/> 能力> 浏览器> 上述4种方式中的任何一种都不适用于googl
上述4种方式中的任何一种都不适用于google chrome。它与firefox配合得很好。请提供任何解决方案。您可以将此代码段添加到ASP.NET页面/母版页(需要jQuery):
$(函数(){
var f=$(“#”)型;
window.onload=函数(){
var position=parseInt(f.val());
如果(!isNaN(位置)){
$(窗口)。滚动顶部(位置);
}
};
window.onscroll=函数(){
var position=$(window.scrollTop();
f、 val(位置);
};
});
我也面临同样的问题。我找到了一个Javascript解决方案
window.onload=函数(){
var scrollY=parseInt(“”);
如果(!isNaN(滚动)){
滚动到(0,滚动);
}
};
window.onscroll=函数(){
var scrollY=document.body.scrollTop;
如果(滚动==0){
if(window.pageYOffset){
scrollY=window.pageYOffset;
}
否则{
scrollY=(document.body.parentElement)?document.body.parentElement.scrollTop:0;
}
}
如果(滚动>0){
var input=document.getElementById(“滚动”);
如果(输入==null){
输入=document.createElement(“输入”);
setAttribute(“类型”、“隐藏”);
setAttribute(“id”,“scrollY”);
setAttribute(“名称”、“滚动”);
document.forms[0]。appendChild(输入);
}
input.value=滚动;
}
};
我希望这能对你有所帮助。无论我做了什么尝试,我都无法让PostBack为我工作。基于Darkseal的回答和Eirik H的评论,我尝试了以下代码,这些代码对我来说很有用。这只有在页面上有ASP.NET脚本管理器(即MicrosoftAjax.js)时才有效。您还需要将JQuery添加到页面中。将以下代码添加到asp:ScriptManager标记下面的.aspx文件中
<asp:HiddenField runat="server" ID="hfPosition" Value="" />
<script type="text/javascript">
$(function () {
var positionField = $("#<%=hfPosition.ClientID%>");
window.onscroll = function () {
var position = $(window).scrollTop();
positionField.val(position);
};
});
function pageLoad() {
var positionField = $("#<%=hfPosition.ClientID%>");
var position = parseInt(positionField.val());
if (!isNaN(position)) {
$(window).scrollTop(position);
}
};
</script>
$(函数(){
变量位置字段=$(“#”);
window.onscroll=函数(){
var position=$(window.scrollTop();
positionField.val(位置);
};
});
函数pageLoad(){
变量位置字段=$(“#”);
var position=parseInt(positionField.val());
如果(!isNaN(位置)){
$(窗口)。滚动顶部(位置);
}
};
基本上,我们将滚动位置保持在名为hfPosition的隐藏字段的值内。每当滚动页面时,该值都会更新。然后,当发生回发时,将自动调用pageLoad(),并获取hfPosition的值并滚动到该值
包括ScriptManager和JQuery,我的最后一段代码如下所示:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script src="../Scripts/jquery-3.3.1.min.js" type="text/javascript"></script>
<asp:HiddenField runat="server" ID="hfPosition" Value="" />
<script type="text/javascript">
$(function () {
var positionField = $("#<%=hfPosition.ClientID%>");
window.onscroll = function () {
var position = $(window).scrollTop();
positionField.val(position);
};
});
function pageLoad() {
var positionField = $("#<%=hfPosition.ClientID%>");
var position = parseInt(positionField.val());
if (!isNaN(position)) {
$(window).scrollTop(position);
}
};
</script>/>
$(函数(){
变量位置字段=$(“#”);
window.onscroll=函数(){
var position=$(window.scrollTop();
positionField.val(位置);
};
});
函数pageLoad(){
变量位置字段=$(“#”);
var position=parseInt(positionField.val());
如果(!isNaN(位置)){
$(窗口)。滚动顶部(位置);
}
};
/>
您必须实现自己的方法。对于现在(或以后)访问此网站的人来说,至少Google Chrome支持页面级添加。对于通过ajax调用来寻求解决方案的人来说,window.onload将不会运行,因此滚动不会发生。相反,我建议使用特殊的asp.net函数pageLoad<代码>函数pageLoad(){var position=parseInt(f.val());if(!isNaN(position)){$(window).scrollTop(position);}}}
<asp:HiddenField runat="server" ID="hfPosition" Value="" />
<script type="text/javascript">
$(function () {
var positionField = $("#<%=hfPosition.ClientID%>");
window.onscroll = function () {
var position = $(window).scrollTop();
positionField.val(position);
};
});
function pageLoad() {
var positionField = $("#<%=hfPosition.ClientID%>");
var position = parseInt(positionField.val());
if (!isNaN(position)) {
$(window).scrollTop(position);
}
};
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script src="../Scripts/jquery-3.3.1.min.js" type="text/javascript"></script>
<asp:HiddenField runat="server" ID="hfPosition" Value="" />
<script type="text/javascript">
$(function () {
var positionField = $("#<%=hfPosition.ClientID%>");
window.onscroll = function () {
var position = $(window).scrollTop();
positionField.val(position);
};
});
function pageLoad() {
var positionField = $("#<%=hfPosition.ClientID%>");
var position = parseInt(positionField.val());
if (!isNaN(position)) {
$(window).scrollTop(position);
}
};
</script>/>