Javascript 阻止Element.scrollIntoView()函数滚动父对象,其中元素位于iframe中
我有一个具有以下功能的页面:Javascript 阻止Element.scrollIntoView()函数滚动父对象,其中元素位于iframe中,javascript,jquery,html,css,iframe,Javascript,Jquery,Html,Css,Iframe,我有一个具有以下功能的页面: function aux_func(_this){ let link = document.getElementById("oLink").href; var elmnt = _this.contentDocument.getElementById(link); elmnt.scrollIntoView({ behavior: "smooth", block: "center" });
function aux_func(_this){
let link = document.getElementById("oLink").href;
var elmnt = _this.contentDocument.getElementById(link);
elmnt.scrollIntoView({ behavior: "smooth", block: "center" });
}
其中,oLink是页面中的一个元素,elmnt是加载在iframe的srcdoc中的html中的一个链接
函数的调用方式如下:
<iframe id="cFrame" srcdoc="{{t1}}" onload="aux_func(this)"></iframe>
或者任何类似的属性,因为我仍然需要访问父对象和iframe中的其他元素。我知道这只是一种攻击,但是在向下滚动iframe之后,将窗口向上滚动如何。在函数末尾添加以下内容:
window.scrollTo(0, 0);
这将使iframe保持滚动,但页面将跳回顶部。如果在打开页面时加载iframe,则效果良好。或者,您可以保存页面当前所在的位置,然后在滚动iframe后滚动回该位置 添加它可以阻止任何滚动的发生;变量y=_this.window.pageYOffset;window.scrollTo0,0_这个.window.scrollTo0,y;
window.scrollTo(0, 0);