CN104504005A - 一种对输入数据的控制方法和装置 - Google Patents
一种对输入数据的控制方法和装置 Download PDFInfo
- Publication number
- CN104504005A CN104504005A CN201410751711.2A CN201410751711A CN104504005A CN 104504005 A CN104504005 A CN 104504005A CN 201410751711 A CN201410751711 A CN 201410751711A CN 104504005 A CN104504005 A CN 104504005A
- Authority
- CN
- China
- Prior art keywords
- languages
- focus
- message
- input
- keyboard message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3337—Translation of the query language, e.g. Chinese to English
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
本申请提供了一种对输入数据的控制方法和装置。所述方法包括:拦截键盘消息,所述键盘消息包含有第一语种消息;获取当前窗口中的焦点元素;依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种;依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息;输出所述按第二语种编码的键盘信息到所述焦点元素中。现有技术无法满足浏览器兼容的条件下实现对输入法的屏蔽,而本发明通过拦截键盘消息,并转换键盘输入从而有效解决了现有技术问题。
Description
本发明专利申请是申请日为2012年3月31日、申请号为201210094098.2、名称为“一种对输入数据的控制方法和装置”的中国发明专利申请的分案申请。
技术领域
本申请涉及数据输入技术领域,特别是涉及一种对输入数据的控制方法和装置。
背景技术
目前互联网技术已经深入影响人们的生活,诸如电子邮箱、论坛、网页游戏等也已成为人们日常工作和娱乐中不可或缺的一部分。上述互联网应用大多需要用户注册并登录后才能使用。多数情况下,用户名多是由英文字母和字符组成,用户在页面上登录或注册时,输入用户名的时候往往需要特意切换成英文输入法,使用起来非常不便。
为了提高用户输入的方便性,现有技术中IE5.0版本以上的浏览器提供了一个与输入法相关的级联样式表(Cascading Style Sheet,CSS)属性ime-mode,用于设置或检索是否允许用户激活输入中文、韩文、日文等的输入法(Input Method Editor,IME)状态。其取值为auto,active,inactive或disabled,取值意义如下。auto:不影响IME的状态,与不指定ime-mode属性时相同;active:初始状态激活本地语言输入法,用户仍可以手动撤销激活IME;inactive:初始本地语言输入法处于非激活状态,用户仍可以手动激活IME。disabled:完全禁用IME,对于有焦点的控件(如输入框),用户不可以激活IME。其对应的脚本特性为imeMode。下面是段使用IME属性的示例代码:
普通的输入框:<input type="text"style="width:190px;">
仅能输入英文的输入框:<input type="text"style="width:190px;ime-mode:disabled;">
上述现有技术虽然可以利用ime-mode属性屏蔽输入框的输入法,但是IE5.0以下版本和火狐等第三方浏览器都无法支持ime-mode属性,无法实现浏览器兼容,导致对输入法的处理失败。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够保证在浏览器兼容的情况下实现对输入法屏蔽处理。
发明内容
本申请所要解决的技术问题是提供一种对输入数据的控制方法和装置,以便在适应不同浏览器的情况下,将用户输入的中文按键信息转换为对应的英文输出显示到窗口中的焦点元素中。
为了解决上述问题,本申请公开了一种对输入数据的控制方法,包括:
拦截键盘消息,所述键盘消息包含有第一语种消息;
获取当前窗口中的焦点元素;
依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种;
依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息;
输出所述按第二语种编码的键盘信息到所述焦点元素中。
为解决上述问题,本申请还公开了一种对输入数据的控制装置,包括:
键盘消息拦截模块,用于拦截键盘消息,所述键盘消息包含有第一语种消息;
焦点元素获取模块,用于获取当前窗口中的焦点元素;
语种编码映射表,用于存储第一语种和第二语种的编码转换映射关系;
第二语种获取模块,用于依据语种编码映射表,获得在焦点元素中进行输入的第二语种;
键盘信息转换模块,用于将所述键盘消息转换为按第二语种编码对应的键盘信息;
键盘信息输出模块,用于将键盘信息转换模块所产生的键盘信息输出到到焦点元素中。
与现有技术相比,本申请具有以下优点:
现有技术中,通过<input>输入框的ime-mode屏蔽输入法无法支持所有的浏览器,而且需要开发人员以代码的方式将输入框的ime-mode属性固化在网页文件中。针对这一问题,我们提出:拦截键盘消息,若该键盘消息是按键消息,则将当前用户输入的按键消息中的原始语种信息转换成需要的语种信息输出显示在当前窗口中的焦点元素中。这样一来,不但可以适应所有版本的浏览器,而且无需对网页文件做任何修改,有效地解决了上述问题,提高了用户的输入体验。
附图说明
图1是本申请一种对输入数据的控制方法的实施例一的流程示意图;
图2是本申请一种对输入数据的控制方法的实施例二的流程示意图;
图3是本申请一种输入数据的控制装置的实施例一的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种对输入数据的控制方法的实施例一的流程示意图。所述方法包括:
步骤101,拦截键盘消息,所述键盘消息包含有第一语种消息。
窗口拦截来自键盘的消息。窗口可以是浏览器窗口、软件窗口或其他任何应用程序窗口。
因为窗口是当前线程,所以当前键盘操作的所有消息都会通过窗口。
以浏览器为例,当用户敲击键盘在浏览器窗口中的网页上输入中文时所产生消息的流程大致如下:
按键操作产生键盘消息→浏览器→操作系统→输入法→输入法将键盘消息转换为中文→浏览器→显示到输入框中。
本申请中数据流程如下:
按键操作产生键盘消息→浏览器→浏览器将键盘消息转换为按第二语种编码对应的键盘信息→浏览器输出显示。
浏览器窗口拦截到键盘消息时既不再执行现有流程的后续步骤处理,该键盘消息不再被传递至操作系统。
步骤102,获取当前窗口中的焦点元素。
当前窗口中的焦点元素就是当前光标焦点所在位置对应的元素,该元素可以是网页中的输入框、复选框、下拉框、某个字符文本、或某个文件窗口中的任意位置等。
步骤103,依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种。
所述目标元素属性映射表中存储有与目标元素有关的属性信息,例如该元素所在位置、名字、要转换的第二语种、是否屏蔽输入法等映射信息。
优选的,所述当前窗口中的焦点元素是输入框元素;所述预置的目标元素属性映射表中包括输入框元素的属性标识和对应的网页域名或窗口名。
当从网页中获取到焦点输入框后,提取该输入框的name属性值和输入框所在网页的URL,然后依据这两个信息在目标元素属性映射表进行匹配,若匹配成功,从目标元素属性映射表中提取当前焦点输入框的相关属性信息和要转换的第二语种,若匹配失败,表示当前焦点输入框不在目标元素属性映射表中,无需进行语种转换。
步骤104,依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息。
所述语种编码映射表包含了所述第一语种编码和第二语种编码进行转换的映射关系。
第一语种和第二语种是对应的两个语种,其中语种的具体内容可根据实施需要自行决定,例如第一语种和第二语种可以分别是中文和英文、中文和德文、法文和西班牙文等。
步骤105,输出所述按第二语种编码的键盘信息到所述焦点元素中。
用户在第一语种输入法状态下实施按键操作,窗口获得来自键盘的键盘消息中会包括第一语种消息,然后按照语种编码映射表将所述键盘消息转换为按第二语种编码对应的键盘信息,最后输出所述按第二语种编码的键盘信息到所述焦点元素中。
参见图2,图2示出了本申请一种对输入数据的控制方法的实施例二的流程示意图。所述方法具体包括:
步骤201,拦截键盘消息,所述键盘消息包含第一语种消息。
当敲击键盘中的一个按键后,产生的键盘消息中包括WM_KEYDOWN和WM_KEYUP两个按键消息。
在不同输入法状态下,按键后发送的WM_KEYDOWN消息,其对应的wParam值是不同的。例如,英文状态下的按键发送WM_KEYDOWN消息,其wParam为按键对应的Virtual Key。中文状态下的按键也会发送WM_KEYDOWN消息,但其wParam为VK_PROCESSKEY。以第一语种为中文举例:
若当前按键消息的wParam属性值等于VK_PROCESSKEY,那么当前按键消息中包括中文消息,否则,丢弃当前键盘消息并拦截新的键盘消息。
键盘消息中未包括第一语种消息,说明第一语种输入法未启动或未产生相应的第一语种消息。例如,中文输入法启动状态下按下数字键,按键消息的wParam不等于VK_PROCESSKEY,此时中断后续处理以便尽可能节约系统资源。
步骤202,若所述键盘消息不包括按键消息,则返回步骤201。
当敲击键盘中的一个按键后,产生的键盘消息中包括WM_KEYDOWN和WM_KEYUP两个按键消息。若键盘消息中包括上述两个消息中的任意一个,则意味着用户实施了键盘按键的动作,否则,则返回步骤201重新执行拦截键盘消息。
步骤203,获取当前窗口中的焦点元素。
步骤204,依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种。
步骤205,依据预置的目标元素属性映射表,匹配所述焦点元素,若匹配,则屏蔽所述窗口中的第一语种输入法。
目标元素属性映射表存储焦点元素是否需要屏蔽第一语种输入法的映射关系。
优选的,所述焦点元素是<input>文本输入框;所述预置的目标元素属性映射表中包括需要屏蔽输入法的网页域名URL和对应的焦点输入框<input>的属性标识。属性标识可以是name、ID等<input>属性和对应的属性值。例如,对于登录表单中用户名输入框的name值可能包括email、regemail、username、用户名等。
下面,举例说明目标元素属性映射表的内容,该目标元素属性映射表中数据按以下格式:
域名=表单ID=<父节点标识>=<input name输入框名>=language’第二语种’=closeime’是否关闭输入法’
www.renren.com=form11=<父节点A>=<input name=email|regEmail>=
language’en’=closeime’true’
www.renren.com=form11=<父节点A’>=<input name=password1>=
language’en’=closeime’true’
mail.cn.yahoo.com=form12=<父节点’B’>=<input name=login>=
language’de’=closeime’false’
获取窗口中的焦点元素<input>文本输入框后,根据当前窗口的URL和焦点元素<input>的name属性与所述目标元素属性映射表进行匹配,若匹配,找到对应的输入法选项,若closeime’true’则屏蔽当前第一语种输入法。
输入法IME在启动状态下,通常会以浮动窗口的方式显示在当前主窗口中,造成主窗口部分内容被遮挡,给用户的操作和使用带来不便。其次,由于我们是要将输入法IME中的第一语种转换为第二语种输出到焦点输入框中,在转换输出过程中屏蔽当前第一语种输入法,可避免用户在使用过程中因输入输出不同而产生的混淆。
优选的,所述预置的目标元素属性映射表中还包含1个或多个表单,所述表单中包含两个或多个输入框元素;
若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框不是文本输入框,则所述表单为登录表单,所述表单中所有输入框元素对应的第二语种为英文。
优选的,若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框是文本输入框,则所述表单为注册表单,所述表单中所有输入框元素对应的第二语种为英文。
优选的,若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则所述表单注册表单,则所述表单为注册表单,所述表单中所有输入框元素对应的第二语种为英文。
优选的,若所述表单中仅含有3个位置连续且互为兄弟节点的密码输入框,则所述表单为密码修改表单,所述表单中所有输入框元素对应的第二语种为英文。
将满足一定条件的输入框设置为同一表单内,在使用目标元素信息映射表进行匹配时,可对表单元素优先处理。进一步的,若表单中的某一元素的公共属性被获知时,可对该表单中的所有元素使用相同的操作,例如,表单form11中password1输入框的元素需要屏蔽输入法,就对该表单form1中的元素全部关闭输入法,因此,节省了大量的系统损耗。
以上面的目标元素属性映射表为例,具有相同formID的元素为统一表单中的元素,具有相同父节点的元素互为兄弟节点。
步骤206,依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息。
步骤207,输出所述按第二语种编码的键盘信息到所述焦点元素中。
步骤208,若所述焦点元素失去焦点,恢复第一语种输入法。
窗口中焦点<input>输入框失去焦点后,恢复原有的第一语种输入法及相应的输入法窗口,方便用户进行其他操作。
参照上述实施例的描述,在中文输入法启动状态下,屏蔽当前中文输入法,同时将用户按键输入的中文消息转换为对应的英文消息输出显示到当前焦点输入框中。在这一过程中,除了选择在按键操作时屏蔽输入法这一方式外,也可以选择其他时机屏蔽当前中文输入法。
在本申请另一实施例中,我们获取焦点元素包括:依据预置的目标元素属性映射表,获取当前窗口中的目标元素;监听所述目标元素直到所述目标元素获得焦点成为焦点元素。首先,要找到目标元素,然后,在该元素获得焦点时进行后续的判断处理。具体的,可以在文档对应的Document Complete事件中对所有的input元素注册事件,通过attachEvent方法注册onfous和onblur事件,在事件中通过window.external来与浏览器交互,以及让浏览器按本申请提出的规则去判断是否需要禁用当前输入法。
基于上述屏蔽方式,对于动态生成的网页需要消耗较高的系统资源。若网页中的元素动态生成,对网页中input的事件注册,需要在document对应的onpropertychange事件中进行捕获。对于动态生成的iframe更是需要重复这个过程。上述方法不但复杂度较高,事件触发和代码执行非常频繁,而且由于存在无效的事件触发,导致系统资源消耗较大而且会造成很大的资源浪费。例如,焦点元素切换等很多其他动作都会触发onpropertychange事件,而这会导致与本申请有关的代码在该事件每次触发时都会被执行,而其中很多事件被触发对本申请来说是无效的,造成系统资源浪费。
参照以上各实施例的描述,以下是本申请公开的一种对输入数据的控制方法的另一实施例。
由于很多网页中包含了嵌套的以<frame>或<iframe>框架结构为嵌套内容的子网页,焦点元素有可能位于子网页内。对于这种情况,在获取窗口的焦点元素时,要分别考虑主网页和子网页的情况。在下面的实施例中,我们对包含嵌套子页面时获取焦点元素的情况做了进一步说明,所述获取窗口中的焦点元素包括:获取当前窗口的应用程序接口对象;通过所述应用程序接口对象获得当前窗口中的焦点元素具体包括,该方法具体包括:
S101,根据当前HTML网页对应对应的浏览器控件对象IWebBrowser2获得HTML窗体对象IHTMLWindow2;
S102,HTML窗体对象IHTMLWindow2通过文档对象获取方法get_document获得HTML文档对象IHTMLDocument2;
S103,HTML文档对象IHTMLDocument2通过焦点元素获取方法get_activeElement获得所述窗口中HTML网页中的焦点元素。
上述过程进一步包括:
若HTML窗体对象IHTMLWindow2通过文档获取方法get_document无法获得HTML文档对象IHTMLDocument2,则HTML窗体对象IHTMLWindow2首先获得当前操作系统的服务支持对象IServiceProvider,然后由所述服务支持对象IServiceProvider获得浏览器控件对象IWebBrowser2,最后基于所述浏览器控件对象IWebBrowser2获得HTML文档对象IHTMLDocument2。
上述过程进一步包括:
若所获焦点元素是框架元素<frame>或内框架元素<iframe>,通过所述<frame>或<iframe>对应的框架基础对象IHTMLFrameBase2获取对应的HTML窗体对象IHTMLWindow2;之后重复上述步骤直到获取到窗口中的焦点元素或窗口中无焦点元素。
以上对本申请获取焦点元素的方法做了进一步详细说明,通过实施该方法,可使得本申请对包含复杂嵌套子网页的窗口也能成功获取焦点元素,有效提高了本申请所述方法的适应性,提供了方法实施的成功率。
以上的实施例中,我们都是以HTML网页为当前窗口、以input输入框为焦点元素为例来描述本申请所提供的方法。下面介绍的实施例中,我们对非浏览器应用程序窗口利用本申请提供的方法实现对输入数据进行控制。
所谓非浏览器应用程序窗口可以是基于不同开发语言所开发的桌面应用程序,如Java、C#程序,也可以是我们常用的Word、Excel等。在对这些应用程序窗口输入进行控制时,其关键在于要能准确获取窗口中的焦点元素。
为实现上述目的,首先,我们首先获取当前窗口的应用程序接口对象;然后,通过所述应用程序接口对象获得当前窗口中的焦点元素。
以Excel为例,我们通过Excel提供的应用程序接口VBA来获取Excel中的焦点元素。在Excel中,用户可以在Excel的单元格中输入文本、数字、日期等不同格式的数据,假设当用户在开启中文输入法的情况下对单元格A1输入,若我们需要在该单元格显示英文,可在外部应用程序中通过获取一个Microsoft.Office.Interop.Excel.Range对象来对excel中的单元格进行操作,例如:
Worksheets(1).Range("A1").Value来判断单元格A1是否为焦点元素。
获取单元格的焦点之后,将当前键盘消息中的中文消息按预置的语种编码映射表转换成英文编码对应的键盘信息,屏蔽当前中文输入法,同时将所述转换后的英文键盘信息输出显示到单元格A1中,当A1失去焦点后恢复显示当前中文输入法。
为了便于本领域技术人员更好的理解本申请的内容,下面结合具体的示例和伪码对本申请的一种数据处理方法做进一步详细描述。
该实施中,当用户填写登录信息时,在中文输入法状态下,若用户在用户名输入框中输入账户信息,则关闭当前中文输入法,将用户的按键信息转换为英文输出显示在用户名输入框中;当用户名输入框失去焦点时,恢复中文输入法。具体过程包括:
首先对用户按键进行判断,若键盘消息是中文,获取焦点输入框,依据目标元素属性映射表匹配当前焦点输入框是否需要做屏蔽,若匹配,屏蔽输入法,并转换输出对应的英文字符。
参见下面的代码示例,其中IsCurrentElement函数用来判断是否需要禁止输入法。
对上述IsCurrentElement()函数的说明:这个函数的作用是首先获取焦点元素的name(或id)以及url,然后根据目标元素属性映射表的内容判断是否需要禁用输入法。禁用输入法窗口后通过设置onblur事件恢复输入法窗口。伪代码如下:
BOOL IsCurrentElement()
{
1.如果此元素存在切换输入法标记,则直接返回FALSE,以允许用户输入中文。比如用户输入了abc后,又自动切换到中文输入,我们此时设置切换输入法标记。
2.获取焦点元素的name(或id)以及url。
3.根据目标元素属性映射表判断是否需要禁用输入法,如不需要禁用返回FALSE。
4.如果需要禁用输入法,通过ImmSetOpenStatus隐藏输入法窗口,以便使用户获得好的好的使用体验。
5.通过IHTMLElement2接口的attachEvent方法为当前元素设置onfocus和onblur事件。在onfocus事件中隐藏输入法窗口,onblur事件中恢复输入法窗口。
6.返回TRUE。
}
如果此函数返回为TRUE,表示已经隐藏输入法窗口,并需要禁用输入法消息,则后续的处理会屏蔽中文消息,并转发相应的英文字符。
以上通过实施例描述了本申请一种对输入数据的控制方法,下面参照上文实施例的描述,对本申请一种对数据输入的控制装置进行描述。
参见图3,图3示出了本申请一种对数据输入的控制装置的结构示意图,所述装置包括:
本申请还公开了一种对输入数据的控制装置,包括:
键盘消息拦截模块310,用于拦截键盘消息,所述键盘消息包含有第一语种消息;
焦点元素获取模块320,用于获取当前窗口中的焦点元素;
语种编码映射表330,用于存储第一语种和第二语种的编码转换映射关系;
第二语种获取模块340,用于依据语种编码映射表,获得在焦点元素中进行输入的第二语种;
键盘信息转换模块350,用于将所述键盘消息转换为按第二语种编码对应的键盘信息;
键盘信息输出模块360,用于将键盘信息转换模块所产生的键盘信息输出到到焦点元素中。
优选的,还包括:
目标元素属性映射表370,用于存储目标元素属性映射关系;
目标元素获取模块380,用于依据目标元素属性映射表获取当前窗口中的目标元素;
监听模块390,用于监听目标元素直到所述目标元素获得焦点成为焦点元素。
优选的,还包括:
按键消息验证模块400,用于判断键盘消息是否包含按键消息,若未包含,通知键盘消息拦截模块开始拦截键盘消息。
优选的,还包括:
焦点元素匹配模块410,依据预置的目标元素属性映射表,匹配焦点元素,若不匹配,则通知键盘消息拦截模块开始拦截键盘消息。
优选的,其特征在于,还包括:
输入法屏蔽模块420,用于屏蔽当前窗口中的第一语种输入法。
优选的,还包括:
输入法恢复单元430,用于判断拖焦点元素失去焦点,恢复当前窗口中的的第一语种输入法。
优选的,其特征在于,还包括:
所述当前窗口中的焦点元素是输入框元素;
所述预置的目标元素属性映射表中包括输入框元素的属性标识和对应的网页域名或窗口名。
优选的,所述预置的目标元素属性映射表中还包含1个或多个表单,所述表单中包含两个或多个输入框元素,所述装置还包括:
登录表单配置模块440,用于判断若当前表单中仅有1个密码输入框,且所述密码输入框下级兄弟节点的输入框不是文本输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
优选的,所述装置还包括:
第一注册表单配置模块450,用于判断若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框是文本输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
优选的,所述装置还包括:
第二注册表单配置模块460,用于判断若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
优选的,所述装置还包括:
密码修改表单配置模块470,用于判断若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
优选的,还包括:
应用程序接口对象获取单元480,用于获取当前窗口的应用程序接口对象;
所述焦点元素获取模块通过所述应用程序接口对象获得当前窗口中的焦点元素。
优选的,所述当前窗口是HTML网页,所述焦点元素获取模块420包括:
HTML窗体对象获取单元421,用于根据HTML网页对应的浏览器控件对象获得HTML窗体对象;
HTML文档对象获取单元422,用于通过HTML窗体对象获得HTML文档对象;
第一焦点元素获取单元423,用于通过HTML文档对象获得HTML网页中的焦点元素。
优选的,进一步包括:
HTML窗体对象获取单元424,用于判断如果通过HTML窗体对象无法获得HTML文档对象,则HTML窗体对象获得当前操作系统的服务支持对象;
所述服务支持对象获得浏览器控件对象;
基于所述浏览器控件对象获得所述HTML文档对象。
优选的,进一步包括:
框架元素验证单元490,用于判断如果通过所述HTML文档对象获得所述HTML网页中的焦点元素是框架元素/内框架元素,通过所述框架元素/内框架元素对应的HTML框架基础对象获取对应的HTML窗体对象。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统和/或装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上对本申请所提供的一种对输入数据的控制方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
本申请实施例揭示了A1、一种对输入数据的控制方法,其特征在于,包括:
拦截键盘消息,所述键盘消息包含有第一语种消息;
获取当前窗口中的焦点元素;
依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种;
依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息;
输出所述按第二语种编码的键盘信息到所述焦点元素中。
A2、如A1所述的方法,其特征在于,在所述拦截键盘消息之前还包括:
依据预置的目标元素属性映射表,获取当前窗口中的目标元素;
监听所述目标元素直到所述目标元素获得焦点成为焦点元素。
A3、如A1所述的方法,其特征在于,所述拦截键盘消息之后还包括:
判断所述键盘消息是否包含按键消息,若未包含,则返回并重新执行所述拦截键盘消息。
A4、如A3所述的方法,其特征在于,所述获取窗口中的焦点元素之后还包括:
依据预置的目标元素属性映射表,匹配所述焦点元素,若不匹配,则返回并重新执行所述拦截键盘消息。
A5、如A2至A4任意一项所述的方法,其特征在于,还包括:
屏蔽当前窗口中的第一语种输入法。
A6、如A5所述的方法,其特征在于,还包括:
若所述焦点元素失去焦点,恢复当前窗口中的第一语种输入法。
A7、如A2至A4任意一项所述的方法,其特征在于,
所述当前窗口中的焦点元素是输入框元素;
所述预置的目标元素属性映射表中包括输入框元素的属性标识和对应的网页域名或窗口名。
A8、如A7所述的方法,其特征在于,所述预置的目标元素属性映射表中还包含1个或多个表单,所述表单中包含两个或多个输入框元素,所述方法还包括:
若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框不是文本输入框,则所述表单中所有输入框元素对应的第二语种为英文。
A9、如A8所述的方法,其特征在于,所述方法还包括:
若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框是文本输入框,则所述表单中所有输入框元素对应的第二语种为英文。
A10、如A9所述的方法,其特征在于,所述方法还包括:
若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则所述表单中所有输入框元素对应的第二语种为英文。
A11、如A10所述的方法,其特征在于,所述方法还包括:
若所述表单中仅含有3个位置连续且互为兄弟节点的密码输入框,则所述表单中所有输入框元素对应的第二语种为英文。
A12、如A1所述的方法,其特征在于,所述获取当前窗口中的焦点元素包括:
获取当前窗口的应用程序接口对象;
通过所述应用程序接口对象获得当前窗口中的焦点元素。
A13、如A12所述的方法,其特征在于,所述当前窗口是HTML网页,所述通过应用程序接口对象获得当前窗口中的焦点元素包括:
根据当前HTML网页对应的浏览器控件对象获得HTML窗体对象;
通过所述HTML窗体对象获得HTML文档对象;
通过所述HTML文档对象获得所述HTML网页中的焦点元素。
A14、如A13所述的方法,其特征在于,进一步包括:
如果通过HTML窗体对象无法获得HTML文档对象,则HTML窗体对象获得当前操作系统的服务支持对象;
所述服务支持对象获得浏览器控件对象;
基于所述浏览器控件对象获得所述HTML文档对象。
A15、如A14所述的方法,其特征在于,进一步包括:
如果所述通过所述HTML文档对象获得所述HTML网页中的焦点元素是框架元素/内框架元素,通过所述框架元素/内框架元素对应的HTML框架基础对象获取对应的HTML窗体对象。
本申请还公开了B16、一种对输入数据的控制装置,其特征在于,包括:
键盘消息拦截模块,用于拦截键盘消息,所述键盘消息包含有第一语种消息;
焦点元素获取模块,用于获取当前窗口中的焦点元素;
语种编码映射表,用于存储第一语种和第二语种的编码转换映射关系;
第二语种获取模块,用于依据语种编码映射表,获得在焦点元素中进行输入的第二语种;
键盘信息转换模块,用于将所述键盘消息转换为按第二语种编码对应的键盘信息;
键盘信息输出模块,用于将键盘信息转换模块所产生的键盘信息输出到焦点元素中。
B17、如B16所述的装置,其特征在于,还包括:
目标元素属性映射表,用于存储目标元素属性映射关系;
目标元素获取模块,用于依据目标元素属性映射表获取当前窗口中的目标元素;
监听模块,用于监听目标元素直到所述目标元素获得焦点成为焦点元素。
B18、如B16所述的装置,其特征在于,还包括:
按键消息验证模块,用于判断键盘消息是否包含按键消息,若未包含,通知键盘消息拦截模块开始拦截键盘消息。
B19、如B18所述的装置,其特征在于,还包括:
焦点元素匹配模块,依据预置的目标元素属性映射表,匹配焦点元素,若不匹配,则通知键盘消息拦截模块开始拦截键盘消息。
B20、如B17至B19任意一项所述的装置,其特征在于,还包括:
输入法屏蔽模块,用于屏蔽当前窗口中的第一语种输入法。
B21、如B20所述的装置,其特征在于,还包括:
输入法恢复单元,用于判断拖焦点元素失去焦点,恢复当前窗口中的的第一语种输入法。
B22、如B17至B19任意一项所述的装置,其特征在于,还包括:
所述当前窗口中的焦点元素是输入框元素;
所述预置的目标元素属性映射表中包括输入框元素的属性标识和对应的网页域名或窗口名。
B23、如B22所述的装置,其特征在于,所述预置的目标元素属性映射表中还包含1个或多个表单,所述表单中包含两个或多个输入框元素,所述装置还包括:
登录表单配置模块,用于判断若当前表单中仅有1个密码输入框,且所述密码输入框下级兄弟节点的输入框不是文本输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
B24、如B23所述的装置,其特征在于,所述装置还包括:
第一注册表单配置模块,用于判断若所述表单中仅含有1个密码输入框,且所述密码输入框下级兄弟节点的输入框是文本输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
B25、如B24所述的装置,其特征在于,所述装置还包括:
第二注册表单配置模块,用于判断若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
B26、如B25所述的装置,其特征在于,所述装置还包括:
密码修改表单配置模块,用于判断若所述表单中仅含有2个位置连续且互为兄弟节点的密码输入框,则配置所述表单中所有输入框元素对应的第二语种为英文。
B27、如B16所述的装置,其特征在于,还包括:
应用程序接口对象获取单元,用于获取当前窗口的应用程序接口对象;
所述焦点元素获取模块通过所述应用程序接口对象获得当前窗口中的焦点元素。
B28、如B27所述的装置,其特征在于,所述当前窗口是HTML网页,所述焦点元素获取模块包括:
HTML窗体对象获取单元,用于根据HTML网页对应的浏览器控件对象获得HTML窗体对象;
HTML文档对象获取单元,用于通过HTML窗体对象获得HTML文档对象;
第一焦点元素获取单元,用于通过HTML文档对象获得HTML网页中的焦点元素。
B29、如B28所述的装置,其特征在于,进一步包括:
HTML窗体对象获取单元,用于判断如果通过HTML窗体对象无法获得HTML文档对象,则HTML窗体对象获得当前操作系统的服务支持对象;
所述服务支持对象获得浏览器控件对象;
基于所述浏览器控件对象获得所述HTML文档对象。
B30、如B29所述的装置,其特征在于,进一步包括:
框架元素验证单元,用于判断如果通过所述HTML文档对象获得所述HTML网页中的焦点元素是框架元素/内框架元素,通过所述框架元素/内框架元素对应的HTML框架基础对象获取对应的HTML窗体对象。
Claims (10)
1.一种对输入数据的控制方法,其特征在于,包括:
拦截键盘消息,所述键盘消息包含有第一语种消息;
获取当前窗口中的焦点元素;
依据预置的目标元素属性映射表,获得在焦点元素中进行输入的第二语种;
依据预置的语种编码映射表,将所述键盘消息转换为按第二语种编码对应的键盘信息;
输出所述按第二语种编码的键盘信息到所述焦点元素中。
2.如权利要求1所述的方法,其特征在于,在所述拦截键盘消息之前还包括:
依据预置的目标元素属性映射表,获取当前窗口中的目标元素;
监听所述目标元素直到所述目标元素获得焦点成为焦点元素。
3.如权利要求1所述的方法,其特征在于,所述拦截键盘消息之后还包括:
判断所述键盘消息是否包含按键消息,若未包含,则返回并重新执行所述拦截键盘消息。
4.如权利要求3所述的方法,其特征在于,所述获取窗口中的焦点元素之后还包括:
依据预置的目标元素属性映射表,匹配所述焦点元素,若不匹配,则返回并重新执行所述拦截键盘消息。
5.如权利要求2至4任意一项权利要求所述的方法,其特征在于,还包括:
屏蔽当前窗口中的第一语种输入法。
6.如权利要求5所述的方法,其特征在于,还包括:
若所述焦点元素失去焦点,恢复当前窗口中的第一语种输入法。
7.如权利要求2至4任意一项权利要求所述的方法,其特征在于,
所述当前窗口中的焦点元素是输入框元素;
所述预置的目标元素属性映射表中包括输入框元素的属性标识和对应的网页域名或窗口名。
8.一种对输入数据的控制装置,其特征在于,包括:
键盘消息拦截模块,用于拦截键盘消息,所述键盘消息包含有第一语种消息;
焦点元素获取模块,用于获取当前窗口中的焦点元素;
语种编码映射表,用于存储第一语种和第二语种的编码转换映射关系;
第二语种获取模块,用于依据语种编码映射表,获得在焦点元素中进行输入的第二语种;
键盘信息转换模块,用于将所述键盘消息转换为按第二语种编码对应的键盘信息;
键盘信息输出模块,用于将键盘信息转换模块所产生的键盘信息输出到焦点元素中。
9.如权利要求8所述的装置,其特征在于,还包括:
目标元素属性映射表,用于存储目标元素属性映射关系;
目标元素获取模块,用于依据目标元素属性映射表获取当前窗口中的目标元素;
监听模块,用于监听目标元素直到所述目标元素获得焦点成为焦点元素。
10.如权利要求8所述的装置,其特征在于,还包括:
按键消息验证模块,用于判断键盘消息是否包含按键消息,若未包含,通知键盘消息拦截模块开始拦截键盘消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410751711.2A CN104504005A (zh) | 2012-03-31 | 2012-03-31 | 一种对输入数据的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410751711.2A CN104504005A (zh) | 2012-03-31 | 2012-03-31 | 一种对输入数据的控制方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210094098.2A Division CN102651023B (zh) | 2012-03-31 | 2012-03-31 | 一种对输入数据的控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104504005A true CN104504005A (zh) | 2015-04-08 |
Family
ID=52945403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410751711.2A Pending CN104504005A (zh) | 2012-03-31 | 2012-03-31 | 一种对输入数据的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104504005A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706690A (zh) * | 2009-12-07 | 2010-05-12 | 北京搜狗科技发展有限公司 | 一种自适应输入方法及系统 |
CN102193913A (zh) * | 2010-03-12 | 2011-09-21 | 夏普株式会社 | 翻译装置及翻译方法 |
US20120023448A1 (en) * | 2010-07-24 | 2012-01-26 | Iq Technology Inc. | Relational Service System and Method for Generating an Input Method |
CN102375809A (zh) * | 2010-08-04 | 2012-03-14 | 英业达股份有限公司 | 以输入的第一语言即时输出第二语言的系统及其方法 |
-
2012
- 2012-03-31 CN CN201410751711.2A patent/CN104504005A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706690A (zh) * | 2009-12-07 | 2010-05-12 | 北京搜狗科技发展有限公司 | 一种自适应输入方法及系统 |
CN102193913A (zh) * | 2010-03-12 | 2011-09-21 | 夏普株式会社 | 翻译装置及翻译方法 |
US20120023448A1 (en) * | 2010-07-24 | 2012-01-26 | Iq Technology Inc. | Relational Service System and Method for Generating an Input Method |
CN102375809A (zh) * | 2010-08-04 | 2012-03-14 | 英业达股份有限公司 | 以输入的第一语言即时输出第二语言的系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6973625B1 (en) | Method for creating browser-based user interface applications using a framework | |
CN110198247B (zh) | 接口测试方法及系统 | |
US20070288853A1 (en) | Software, methods and apparatus facilitating presentation of a wireless communication device user interface with multi-language support | |
US9690779B2 (en) | Quasi natural language man-machine conversation device base on semantic logic | |
US20100324887A1 (en) | System and method of online user-cycled web page vision instant machine translation | |
CA2428821C (en) | Accessing a platform independent input method editor from an underlying operating system | |
US20070078925A1 (en) | Porting an interface defining document between mobile device platforms | |
CN109144567B (zh) | 跨平台的网页渲染方法、装置、服务器及存储介质 | |
WO2015029193A1 (ja) | Webサーバシステム、アプリケーション開発支援システム、Webサーバシステムにおける多言語対応方法、Webサーバシステムにおけるマルチデバイス対応方法、およびアプリケーション開発支援方法 | |
CN101882007A (zh) | 一种基于输入界面进行信息输入和执行的方法、装置 | |
CN101847100A (zh) | 扩展软件应用的方法和装置 | |
CN103324613A (zh) | 用于应用的自动语言转化的系统和方法 | |
CN103383645A (zh) | 代码生成方法及系统 | |
CN108304172A (zh) | 一种web开发方法及web开发引擎 | |
KR102550540B1 (ko) | 랜딩 페이지 처리 방법, 장치, 기기 및 매체 | |
CN102651023B (zh) | 一种对输入数据的控制方法和装置 | |
CN104199647A (zh) | 一种基于ibm主机的可视化系统及实现方法 | |
CN101957756A (zh) | 一种智能移动终端程序快速生成系统及方法 | |
CN102520966A (zh) | 一种代码提示方法和装置 | |
US9384292B2 (en) | Map service | |
CN109656951A (zh) | 基于表达式查询数据的方法及查询系统 | |
CN105630501A (zh) | 一种基于QML+OpenGL的车载图形界面系统 | |
CN112328342A (zh) | 基于在线文档的待办事项处理方法及装置 | |
CN104504005A (zh) | 一种对输入数据的控制方法和装置 | |
CN113821209A (zh) | 交互数据的处理方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150408 |
|
RJ01 | Rejection of invention patent application after publication |