// 弹出提示框,让用户输入刷新时间间隔(单位为秒) var timeout = prompt("设置刷新时间间隔[S]"); // 获取当前页面的 URL var current = location.href; if(timeout > 0) { // 如果用户输入的时间间隔大于 0,则设置一个定时器,每隔指定的时间间隔就执行 reload() 函数 setTimeout('reload()', 1000 * timeout); } else { // 如果用户输入的时间间隔等于 0 或小于 0,则直接刷新当前页面 location.replace(current); } function reload() { // 每隔指定的时间间隔就执行 reload() 函数 setTimeout('reload()', 1000 * timeout); // 创建一个带有一个框架的新页面,并将该框架的源设置为当前页面的 URL var fr4me = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\' />'; fr4me += '</frameset>'; // 将新页面写入到当前页面中,并关闭当前页面 with(document) { write(fr4me); void(close()); }; }在此代码的fr4me中设置滚动条的位置,保持之前页面浏览的滚动位置。
时间: 2024-03-11 15:48:51 浏览: 131
要保持之前页面浏览的滚动位置,您需要在新页面加载后,将滚动条位置设置为与之前页面相同的位置。为此,您可以使用JavaScript的`scrollX`和`scrollY`属性来获取之前页面的水平和垂直滚动位置,并将其设置为新页面的滚动位置。同时,您可以在`<frameset>`标签中添加`onload`事件,以在新页面加载后执行该代码。例如:
```
function reload() {
// 每隔指定的时间间隔就执行 reload() 函数
setTimeout('reload()', 1000 * timeout);
// 获取之前页面的滚动位置
var scrollX = window.scrollX || document.documentElement.scrollLeft;
var scrollY = window.scrollY || document.documentElement.scrollTop;
// 创建一个带有一个框架的新页面,并将该框架的源设置为当前页面的 URL
var fr4me = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\' onload=\'setScroll(' + scrollX + ',' + scrollY + ')\'/>';
fr4me += '</frameset>';
// 将新页面写入到当前页面中,并关闭当前页面
with(document) {
write(fr4me);
void(close());
};
}
function setScroll(scrollX, scrollY) {
// 设置新页面的滚动位置为之前页面的滚动位置
window.scrollTo(scrollX, scrollY);
}
```
在`<frame>`标签中添加`onload`事件,以在新页面加载后执行`setScroll()`函数,并将之前页面的滚动位置作为参数传递给该函数。然后,`setScroll()`函数将新页面的滚动位置设置为之前页面的滚动位置。
阅读全文