如何保存iframe(scrollto)的x和y?有可能吗
How to save the x and y of iframe (scrollto)? Is it possible?
在找了几个小时都没有找到答案后,我决定来找你,哦,伟大的社区,我一直寻求帮助。我有一个iframe,当我的用户滚动时,他们离开,然后回来,我们想使用scrollto将其带回正确的位置。那么,我如何保存/导出/添加到变量这个iframe的x和y,或者这是不可能的吗?
您可以使用这个jquery插件将x,y变量保存到cookie中:https://github.com/carhartl/jquery-cookie
示例:
$(window).unload(function() {
//save scroll on unload
$.cookie('scroll_x',$("#yourElementId").scrollLeft());
$.cookie('scroll_y',$("#yourElementId").scrollTop());
});
$(document).ready(function() {
//restore scroll when the dom is ready
var x = $.cookie('scroll_x');
var y = $.cookie('scroll_y');
if( x != null ) $("#yourElementId").scrollLeft(x);
if( y != null ) $("#yourElementId").scrollTop(y);
});
您想要滚动的元素的id是"yourElementId"。
您需要采取的第一步是获取x/y组件。您可以通过使用elem.scrollTop
和elem.scrollLeft
来实现这一点。将这些记录到本地存储器中,使用onscroll
事件检测滚动。然后,在下一页加载时,将记录的x/y成分分配给iframe的elem.scrolLTop
和elem.scrollLeft
。
var frame = document.getElementById("frame");
frame.contentWindow.addEventListener("scroll", function(){
sessionStorage.setItem("coordinates", this.scrollLeft + "," + this.scrollTop);
}, false);
window.addEventListener("load", function(){
if(sessionStorage.getItem("coordinates")){
var coordinates = sessionStorage.getItem("coordinate").split(",");
frame.scrollLeft = coordinates[0];
frame.scrollTop = coordinates[1];
}
}, false);
注意:未经测试,很可能保证在没有修改以清除错误的情况下不会工作。
编辑:我意识到iframe不能处理onscroll
,所以你必须找到一个解决方法
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- Livereload for node.js.有可能吗
- 有可能在来自链接的警报中有一个值吗
- 有可能通过sessionID获得快速会话吗
- 正在对已提取的文档进行填充.有可能吗?如果有,怎么做
- 有可能得到一个大整数实例的自然日志吗
- Ajax与jQuery同步.有可能吗
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 有可能隐藏同行吗;强制转向/继电器时相互IP
- 如何使用javascript从同一浏览器下的其他页面获取URL?有可能吗
- JavaScript在变量中存储操作?有可能吗
- 我有可能防止黑客使用网络控制台用JavaScript重复调用upvote(AJAX)函数吗
- 有可能过滤extjs图表吗
- 有可能将SYSTEMJS与REQUIREJS结合起来吗
- 有可能让两个变量指向同一个对象吗?(javascript)
- 这有可能对网站进行按键模拟吗
- 如何保存iframe(scrollto)的x和y?有可能吗
- Asp.net按钮事件点击不做回发.有可能吗
- 有可能对对象中的所有键进行原子更新吗?类似于阵列拼接的东西
- 有可能在Chrome扩展中使用ES6吗