设置文本框活动而不使用focus()

Set textbox active without using focus()

本文关键字:focus 置文本 活动      更新时间:2023-09-26

我有一个小iframe。iframe的内容比iframe窗口大,可以通过滚动来查看。框架中有一个按钮。点击该按钮动画一秒钟,增加iframe的高度和宽度,加载一个表单,并将文本框设置为焦点。

 $input[0].focus();

然而,在动画开始之前,focus()使文本框位于iframe窗口的中心,并扭曲了iframe窗口中可见的内容。我如何实现这一点:光标在该文本框中是活动的,但没有iframe的内容被重新定位。重新定位使文本框可以在iframe的可见部分。

由于其他限制,我不能将focus()放在animate()的回调中。

根据@Zyga的建议,这是有效的:

function focusWithoutScrolling (element){
var x = window.scrollX, y = window.scrollY;
element.focus();
window.scrollTo(x,y);