防止场地模糊的最佳方法?

时间:2010-10-02 18:51:40

标签: javascript html focus

我有一个文字字段,我想保持专注,无论如何。

问题是,我的页面加载了一个iframe(跨域),其中的内容窃取了焦点。更重要的是,用户可能在我的文本字段中输入内容,因为iframe窃取了焦点,导致用户输入iframe的文本字段。

我曾尝试向.focus()事件发送垃圾邮件,希望如果它变得模糊,它会立即重新聚焦。看起来这样可行,但会发生的是它不能足够快地切换焦点 - 用户仍然可以输入iframe的焦点字段。

有没有办法防止模糊发生?或者更快速地将焦点切换回我的文本字段?

这是我尝试过的,但这并不完全有效:

//get the textbox DOM element to focus.
var my_textbox = $("#my_textbox").get(0);
//pretty straight-forward -- focus it.
var setFocus = function(){
  my_textbox.focus();
}

//every 10ms refocus our textbox.
//apparently, 10ms is not fast enough, as some typing
//still occurs in the iframe's textfield.
setInterval(setFocus, 10);

注意:我昨天做了类似的问题,但我认为这个问题已成为问题的根源。我希望没关系。

2 个答案:

答案 0 :(得分:3)

你试过这个吗?

//get the textbox DOM element to focus.
var my_textbox = $("#my_textbox").get(0);

my_textbox.onblur = function(){
  my_textbox.focus();
};

仍感觉非常好,但我认为这就是你想要的。

答案 1 :(得分:1)

这听起来不错。如果您的字段和iframe的字段都在争夺焦点,那么您可能会导致无限循环并挂起浏览器,或者您可能无法输入 字段。如果用户希望输入iframe的字段,该怎么办?如果我去了一个表现得像你描述的网站,我会离开,永远不会回来。

如果某些事情需要用户立即,一心一意地注意,那么它应该是页面上的唯一内容,类似于许多登录页面。