自动HTML页面刷新保留滚动位置,与锚一起工作
Automatic HTML page refresh preserving scroll position, working with anchors
我有一个生成html的web服务,我需要它在浏览器中每10秒自动刷新一次。我已经用<meta http-equiv="refresh" content="10">
简单地完成了它,它工作得很好,保留了滚动位置(至少在Firefox中)。
然后我在页面中添加了一些内部链接,例如使用<a href="#foo">Foo</a>
链接到<a name="foo"/>
。在单击这样的链接之后,我跳转到适当的部分,#foo
被添加到地址栏中的URL中,如预期的那样。但是如果自动刷新发生在现在,#foo
从地址栏中消失,页面在刷新后滚动到顶部。
是否有一些方法保持自动刷新页面,保持滚动位置,并能够使用内部链接而不破坏它?
我试图改变元<meta http-equiv="refresh" content="10;url=page.html#foo">
(没有Javascript现在,只是直接这个值,看看它是否有效)。我打开页面作为page.html
,它刷新一次作为page.html#foo
,然后它停止。为什么它不能保持清爽?
不幸的是整个页面需要重新加载,而且您不能仅仅通过AJAX调用来获取数据。
由于您的页面需要每次刷新,您可以考虑将滚动位置存储在本地存储中,并在页面再次加载时读取它。该代码可能看起来像这样:
document.addEventListener("DOMContentLoaded", function(event) {
var scrollpos = localStorage.getItem('scrollpos');
if (scrollpos) window.scrollTo(0, scrollpos);
});
window.onbeforeunload = function(e) {
localStorage.setItem('scrollpos', window.scrollY);
};
如果你想刷新页面并保持锚链接,你可以使用JavaScript代替元刷新标签:
setTimeout(function() {
location.reload();
},10000);
你可以试试客户端路由。
如youresite.com/path # section2
"#section2"指的是DOM元素的id。
当你刷新这个URL时,它应该把你带到DOM的id section2。
在您的文档中。准备好了,您可以首先使用window.location.href解析url,然后滚动到找到的id。我想这也许能解决你的问题。:)
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- document.title函数可以't设置它与php一起工作
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 非常简单的js测试;Don’不要和Minko一起工作
- 无法使我的文本参数与我的查询一起工作
- 为什么Angularjs验证don't与输入[type=“number”]一起工作
- 无法使vash 0.8.0与express 4.12.3一起工作
- 如何使Angular JS控制器与指令一起工作
- 无法使autocompletion与bootstrap和php代码点火器一起工作
- 注入的元素和jQuery脚本.如何让他们一起工作
- 两个独立工作的javascript函数,但不能一起工作
- 角度和砖石一起工作
- Node http-proxy-middleware 不能与本地服务器一起工作
- jQuery脚本不想一起工作
- page.js使examples/hash与hashbang:true一起工作
- javascript使jquery倒计时与UTC时间一起工作
- jQuery.not()选择器无法与类一起工作
- Rails3-可排序列表不能与wysihtml5一起工作
- 替换匹配函数给出了未定义的错误,但它与替换一起工作
- 按钮上的数据加载消息无法与ajax调用一起工作