jQuery - 聚焦在 iframe 内?

Posted

技术标签:

【中文标题】jQuery - 聚焦在 iframe 内?【英文标题】:jQuery - focus inside an iframe? 【发布时间】:2011-08-12 15:17:57 【问题描述】:

我正在使用一个所见即所得的 jQuery 插件,它为我的 textarea 创建一个 iframe,如下所示:

<div class="wysiwyg" style="width: 581px;">
<ul class="panel" role="menu">
<div style="clear: both;"></div>
<iframe id="id_message_bodyIFrame" frameborder="0" src="javascript:false;" style="min-height: 170px; width: 573px;" tabindex="0">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body style="margin: 0px;">
DETECT WHEN I START TYPING TEXT HERE <--------
</body>
</html>
</iframe>
</div>
<textarea id="id_text_area" name="message_body" cols="70" rows="10" style="display: none;"></textarea>
</div> 

我希望能够检测我何时开始在 iframebody 内输入文本,就像 focus() 对文本输入所做的那样。有任何想法吗?

【问题讨论】:

我不认为focus() 可以处理表单元素或链接以外的任何内容。 @fudgey 有没有其他方法可以在没有焦点 () 的情况下完成同样的事情? 【参考方案1】:
var frameBody = $("#id_message_bodyIFrame").contents().find("body");

frameBody.focus(function() /* ... */ );
frameBody.click(function() /* ... */ );
frameBody.keyup(function() /* ... */ );

【讨论】:

我试过这个,但它似乎不起作用。我把“alert('Handler for .focus() called.');”在焦点内,但我没有看到任何动作。

以上是关于jQuery - 聚焦在 iframe 内?的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 可拖动到 iframe 之外。可放置在 iframe 内

Jquery - 拦截在 iframe 内点击的链接

在 iframe 内启用可拖动的 Jquery 滚动

检查 iframe 内是不是加载了 Vimeo 视频 - jquery

使用 jquery 单击时在 iFrame 内滚动

使用 jQuery 获取 iframe 内元素的高度