jBox  是一个不错的组件库,可以用来比较简单地弹出窗口。

我希望在 jBox 弹出窗口之后,自动将焦点设置到子窗口的某个输入框中,可是发现并不容易。

在 jBox 2.3 中,提供了如下的增强。

[调整] loaded 选项增加了个参数h,参数h表示窗口内容的jQuery对象,方便用户在窗口加载后对内容进行初始化处理。

示例中并没有说明 h 的使用方式。

那么,这个 h 是什么呢?

在使用 jBox 的时候,每个弹出的窗口,会创建一个 id 为 jbox-content 的 div 元素包裹所有的窗口内容。在 loaded 中,jBox 传递给函数的参数就是这个元素。这个元素的结构如下:

<div style="height: auto; overflow-x: hidden; overflow-y: auto; position: static; left: -10000px;" class="jbox-content" id="jbox-content">
<iframe scrolling="auto" width="100%" height="100%" frameborder="0" marginwidth="0" marginheight="0" id="jbox-iframe" name="jbox-iframe" src="iframe2.html?___t0.9552568292007391"></iframe>
</div>

注意这个元素唯一的子元素为一个 iframe 元素,隔断了 jQuery 的查找。使得我们不能直接找到子窗口中的元素进行处理。

我们可以先找到这个元素的第一个孩子,就是这个 iframe,然后,取出它的名字,通过这个名字找到这个 iframe 对应的窗口,然后,在这个子窗口中查找我们的内容。

代码如下所示:

$.jBox("iframe:iframe2.html", {

    loaded: function (h) {
var iframeName = h.children(0).attr("name");
var container = window.frames[iframeName].document
var elem = $("#username", container);
elem.focus();
}
});

jBox 弹出窗口中焦点设置问题的更多相关文章

  1. CKFinder 弹出窗口操作并设置回调函数

    CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.defin ...

  2. iphone对fixed模态框支持不太好,弹出窗口中滚动点击穿透的bug

    iphone对fixed展现层中存在滚动内容支持非常不好, 尤其是背景页面产生滚动以后,输入控件就找不到了, 取消冒泡也不行,最后是这么解决的,可以参考 <style> .modeldiv ...

  3. 在Javascript弹出窗口中输入换行符

    private void showMessage(string strMsg) { Page.RegisterStartupScript("scriptStr", "&l ...

  4. Jbox 弹出窗口 子页面操作完成后关闭 父页面刷新

    父页面js //父页面js <script> var isFreshFlag = '1'; //添加会议活动 function addMeetingAct(){ var attendVip ...

  5. 在HTML网页中设置弹出窗口的办法

    [1.最基本的弹出窗口代码] 其实代码非常简单: <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.h ...

  6. [转]js来弹出窗口的详细说明

    1.警告对话框 <script> alert("警告文字") </script> 2.确认对话框 <script> confirm(" ...

  7. 34.qt quick-Popup弹出窗口自定义

    1.Popup介绍 Popup是一个弹出窗口的控件它的常用属性如下所示: anchors.centerIn : Object,用来设置居中在谁窗口中. closePolicy : enumeratio ...

  8. JS弹出窗口代码大全(详细整理)

    1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...

  9. asp .NET弹出窗口 汇总(精华,麒麟创想)

    asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javas ...

随机推荐

  1. [Hibernate] - Annotations - Many To Many

    Hibernate annotation 多对多: 下面测试例子会自动生成一张表:card,这张是bank和user表的映射表.里头是bank_id和user_id两个组合字段. 如果想在这张映射表中 ...

  2. php PDO连接数据库

    [PDO是啥] PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.d ...

  3. Env:VIM配置

    注:文章来自于http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配 ...

  4. 使用 Override 和 New 关键字进行版本控制

    使用 Override 和 New 关键字进行版本控制 C# 语言经过专门设计,以便不同库中的基类与派生类之间的版本控制可以不断向前发展,同时保持向后兼容. 这具有多方面的意义.例如,这意味着在基类中 ...

  5. JavaScript-CheckBox全选/反选

    //------------------------------------ // 全/反选 // param checkName checkbox的name属性 //---------------- ...

  6. 黄聪:chrome扩展开发《AJAX请求》

    chrome在一次更新之后,出于安全考虑,完全的禁止了content_script从https向http发起ajax请求,即使正常情况下也会在console里给出提示.这对于WEB来讲是好事,但对于扩 ...

  7. 黄聪:WordPress 的 Hook 机制与原理(add_action、add_filter)

    稍有接触过 WordPress 主题或插件制作修改的朋友,对 WordPress 的Hook机制应该不陌生,但通常刚接触WordPress Hook 的新手,对其运作原理可能会有点混乱或模糊.本文针对 ...

  8. php 设置一个函数的最大运行时间

    如何防止一个函数执行时间过长呢?在PHP里可以用pcntl时钟信号+异常来实现 declare(ticks = 1); function a() { sleep(10); echo "a f ...

  9. Mac下lombok无法安装到eclipse mars

    eclipse升级到mars之后 , 在mac下已经不再是文件夹中有很多文件的eclipse了 , 只有一个单独的app文件.用原来的方式运行lombok再选eclipse.app已经不行了. 自己鼓 ...

  10. SmtpClient 类

    1, SmtpClient 类 http://www.cnblogs.com/panlijiao/archive/2012/11/14/2773836.html