【问题标题】:Set textbox active without using focus()在不使用 focus() 的情况下设置文本框处于活动状态
【发布时间】:2014-10-12 04:31:11
【问题描述】:

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

 $input[0].focus();

但是,在动画开始之前,focus() 使文本框成为 iframe 窗口的中心,并扭曲了 iframe 窗口中的可见内容。 我怎样才能做到这一点:光标在该文本框中处于活动状态,但没有要重新定位的 iframe 的内容。重新定位是为了使文本框可以在 iframe 的可见部分中。

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

【问题讨论】:

  • 什么限制阻止你把它放在完整的回调中?
  • @PatrickEvans animate 函数是客户端代码的一部分,而 iframe 的内容由服务器端代码加载。我想尽量减少他们之间的互动。

标签: javascript jquery html forms iframe


【解决方案1】:

正如@Zyga 所建议的那样,这很有效:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2014-11-20
    • 2011-01-18
    • 2019-07-08
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多