从弹出窗口返回后,重新加载并记住滚动位置
Reload and remember the scroll position after coming back from popup
我有一个产品页面,每个产品都有一个链接:"购买"。单击链接后,将显示一个弹出窗口,其中嵌入了另一个.aspx文件。(弹出窗口由Colorbox插件生成)
用户进行购买后(单击发送到DB信息的按钮等):1.弹出窗口必须自行关闭2.必须重新加载父页3.滚动位置必须保持
问题是没有保持滚动位置(尤其是在IE浏览器中)。
我尝试过的:1.
MaintainScrollPositionOnPostback="true" -- had no effect
和:
弹出页面:
<script>window.parent.callbackfromchild('" + ID + "');</script>
父页:函数callbackfromchild(arg){
__doPostBack("callbackbtn", "");
window.onload = function () {
document.getElementById('#div' + arg).scrollIntoView(true);
};
我做错了什么?
您需要在父aspx页面中使用此脚本
<script>
function callbackfromchild(id) {
//maintain hash on post back
var form = document.getElementById("<%=Page.Form.ClientID%>");
// Change form action & post back
form.action += '#'+ id;
__doPostBack("<%=callbackbtn.ClientID%>", "");
}
</script>
你需要这个锚——ID是从弹出窗口中使用的一个函数参数——放在每个ID不同的产品旁边。因此,当父页面的URL重新加载并添加哈希"page.aspx#x1"时,浏览器将滚动到该元素。
<a id="x1"></a>
我想你已经在父页面上有了这个链接按钮,将成为回发的目标
<asp:LinkButton ID="callbackbtn" runat="server" />
在弹出的颜色框中,您需要将锚点Id传回父
window.parent.callbackfromchild('x1')
或者它是一个弹出窗口,你可以这样称呼它
window.opener.callbackfromchild('x1')
您可以在打开弹出窗口之前将当前滚动位置放入cookie中,并在窗口上重新应用它。在本地,我使用jQuery.scrollTo插件执行此类任务,它可以完美地进行
相关文章:
- 加载页面时更改html页面的位置
- 点击href在谷歌地图中加载位置
- 如何在浏览器重新加载时保存位置哈希状态
- 防止用户在jQuery Mobile中ajax加载页面时单击其他位置
- 事件在加载之前时的未定义位置
- 在地图加载/页面加载时,我想将地图设置为当前地理位置,但不想在地图上显示定位图标
- 谷歌地图自动加载标记位置中的隐藏位置
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 窗口位置href更改不会重新加载
- 通过位置栏更改查询字符串,AJAX加载的菜单不会't在没有硬刷新的情况下重新填充
- 如何在网页加载asp.net上显示文本框中第二个字母的光标位置
- 页面重新加载后滚动到特定位置
- 在存储位置加载页面
- 将图像加载到localStorage,并将图像src设置到该位置
- javascript设置第一次加载页面时ipad的绝对位置
- 试图从错误位置加载资源的Rails
- Rails:Jquery/Javascript无法从正确的资产位置加载
- JavaScript页面加载位置
- 为什么使用文档时页面会重新加载.位置在内容脚本的chrome扩展
- WebView不再对文档重新加载.位置的改变