打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HTML DOM focus() 方法之原理

原创!转载清注明出自http://blog.csdn.net/lichwei1983

chromium 33

1 支持焦点

W3C规定,只有web page明确设置了tabIndex的Element才定义为支持焦点,他是这么定义一个Node是否支持焦点的:

bool Element::supportsFocus() const

{

    return hasRareData() && elementRareData()->tabIndexSetExplicitly();

}

2 可被设置焦点

首先,Element必须支持焦点,其次,此Element的render对象RenderBox必须存在,而且此RenderBox的style属性设置为

可见

bool Element::isFocusable() const

{

    return inDocument() && supportsFocus() && !isInert() && rendererIsFocusable();

}

3 按键可获取焦点

一个Element能否获取焦点,取决于:

1)自己“可被设置焦点”

2)tabIndex是正整数

bool Element::isKeyboardFocusable() const

{

    return isFocusable() && tabIndex() >= 0;

}

4 鼠标可获取焦点

只需要判断“可被获取焦点”就行了:

bool Node::isMouseFocusable() const

{

   return isFocusable();

}

   return true;

}

按键可获取焦点

一个Element能否获取焦点,取决于:

1)自己“可被设置焦点”

2)tabIndex是正整数

bool Node::isKeyboardFocusable(KeyboardEvent*) const

{

   return isFocusable() && tabIndex() >= 0;

}

鼠标可获取焦点

只需要判断“可被获取焦点”就行了:

bool Node::isMouseFocusable() const

{

   return isFocusable();

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
链表——用C++模板实现
在Visual C++ 6.0上实现矩阵的各种运算
模板类的前置声明
使用自己的函数对象定义sort,priority
数据结构一:链表(C++代码)
Paser体系
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服