我有一个具有以下功能的页面:
SELECT Id, TableEnumOrId FROM ProcessDefinition
其中oLink是页面中的元素,而elmnt是iframe的srcdoc中加载的html中的链接。
该函数的调用方式如下:
function aux_func(_this){
let link = document.getElementById("oLink").href;
var elmnt = _this.contentDocument.getElementById(link);
elmnt.scrollIntoView({ behavior: "smooth", block: "center" });
}
{{t1}}是Django发送的一些html(我正在使用模板)。而iframe位于页面中(从现在起,将其称为父对象。)
无论如何,我要在加载框架内容时自动滚动到elmnt。但是我想防止父级被滚动。因此,我只希望iframe的滚动条移动。
任何想法该怎么做?我无法使用:
<iframe id="cFrame" srcdoc="{{t1}}" onload="aux_func(this)"></iframe>
或其他类似的属性,因为我仍然需要访问父级和iframe中的其他元素。
答案 0 :(得分:0)
我知道它只是黑客,但是向下滚动iframe后又向上滚动窗口又如何。在函数末尾添加此代码:
window.scrollTo(0, 0);
这应该使iframe滚动,但是页面会跳回到顶部。如果在页面加载时加载iframe,效果很好。或者,您可以保存页面当前所在的位置,然后在滚动iframe后再滚动回该位置。