HtmlAreaFreeTextBox 多的一个功能就是:当前光标处状态跟按钮状态一致。

今天研究了它的实现方式,发现很简单,而且所有调用的都是基于 IE4.0 就已经实现的函数。我准备把这个功能增加到我在 FreeTextBox 1.6.3 基础上开发的 WebTextBox 的功能上。

光标处状态跟按钮状态一致的实现机制:

监控 IFRAME 的 onkeyup onmouseup 两个事件,当事件触发时候,通过 queryCommandState 方法获得当前光标处是不是粗体,是不是斜体,以及字体等等信息。根据这个信息,对指定的按钮的className 进行修改。

以下连接是一个简单的范例,当移动其中光标的时候,出现一个对话框,告诉你当前光标处的字是不是粗体。

http://www.csdn.net/ghj1976/test01.htm

虽然 FreeTextBox 每一个按钮,其实是通过 一个 TD 跟一个图片实现的,好在 TD  有个ID 的属性,我可以方便的在onkeyup onmouseup  事件中找到对应的按钮。下面是通过ID找TD的范例:

http://www.csdn.net/ghj1976/test02.htm

这样我就对每个派生的控件类中的TD都要增加一个ID属性,再把这几个事件函数增加上去,就可以实现这个功呢能了。