在不使用 focus() 的情况下设置文本框处于活动状态
Posted
技术标签:
【中文标题】在不使用 focus() 的情况下设置文本框处于活动状态【英文标题】:Set textbox active without using focus() 【发布时间】:2014-10-12 04:31:11 【问题描述】:我有一个小的 iframe 。 iframe 的内容比 iframe 窗口大,左右滚动可以看到。 iframe 中有一个按钮。单击该按钮动画一秒钟并增加 iframe 的高度和宽度,加载表单并将文本框设置为焦点。
$input[0].focus();
但是,在动画开始之前,focus() 使文本框成为 iframe 窗口的中心,并扭曲了 iframe 窗口中的可见内容。 我怎样才能做到这一点:光标在该文本框中处于活动状态,但没有要重新定位的 iframe 的内容。重新定位是为了使文本框可以在 iframe 的可见部分中。
由于其他限制,我无法将 focus() 放在 animate() 的回调中。
【问题讨论】:
什么限制阻止你把它放在完整的回调中? 这行得通吗? ***.com/questions/4963053/… @PatrickEvans animate 函数是客户端代码的一部分,而 iframe 的内容由服务器端代码加载。我想尽量减少他们之间的互动。 【参考方案1】:正如@Zyga 所建议的那样,这很有效:
function focusWithoutScrolling (element)
var x = window.scrollX, y = window.scrollY;
element.focus();
window.scrollTo(x,y);
【讨论】:
以上是关于在不使用 focus() 的情况下设置文本框处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章
在 iPad 上,如何在不显示选项的情况下通过 Javascript 事件在选择元素上设置 focus()?
如何在不使用自动模型表单的情况下从 Django 的文本框中获取数据?