2012-07-22 96 views
0

我在我的应用程序中使用了TinyMce。所以,我嵌套了body元素和iframe。一个来自我的html页面,另一个来自TinyMce。对于tinymce的主体我附加了许多文本框的div。他们的ID是你好1,你好2等。将焦点设置为嵌套iframe中的文本框

如何将焦点设置为'hello1'?

此代码:

$iframe.contents().find('body').find('hello1') 

返回正确的文本。

但这:

$iframe.contents().find('body').find('hello1').focus() 

不起作用。如何解决这个问题?

+0

尝试'点击()'而不是'focus()' – Austin 2012-07-22 15:48:59

+0

什么是'comment0'?一个类或一个ID?如何返回正确的文本框? – undefined 2012-07-22 16:07:01

+0

@Raminson hello1是文本框的ID。当我在Chrome中执行$ iframe.contents()。find('body')。find('hello1')时,我在控制台中找到了正确的对象。 – 2012-07-22 16:08:22

回答

0

试试这个:

$iframe.contents().find('body').find('hello1').focus() - >$iframe.contents().find('#hello1').focus()

它看起来像你对我只是缺少您的ID选择#。寂寞天也对,.find('body')是不需要的,因为.contents()已经包含你的元素。

0

我相信你需要关注元素和相关iframe。每一帧都是不同的窗口,因此每个窗口都可以有一个焦点元素。因此实际上只会选择聚焦的iframe中的焦点元素。

$iframe.focus().contents().find('#hello1').focus() 

同样,如其他人所说的,你还需要#hello1,而不仅仅是hello1,其id选择的元素。还请注意,您可以删除.find('body'),因为推测该文档中只有该id中的一个元素。

+0

不应该事件冒泡到iFrame元素? – Fresheyeball 2012-07-22 16:16:32

+0

@Fresheyeball不,因为它在不同的文档中。 – lonesomeday 2012-07-22 16:17:58

+0

有趣。所以你实际上可能会因'焦点'不同步?由于iFrame中的某个元素具有焦点,但用户没有使用它,但是使用另一个焦点位于iFrame之外的元素? – Fresheyeball 2012-07-22 16:22:08