CN103365546A - 浏览器窗口创建方法及装置 - Google Patents

浏览器窗口创建方法及装置 Download PDF

Info

Publication number
CN103365546A
CN103365546A CN2013103444419A CN201310344441A CN103365546A CN 103365546 A CN103365546 A CN 103365546A CN 2013103444419 A CN2013103444419 A CN 2013103444419A CN 201310344441 A CN201310344441 A CN 201310344441A CN 103365546 A CN103365546 A CN 103365546A
Authority
CN
China
Prior art keywords
window
source page
user
page
new
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.)
Granted
Application number
CN2013103444419A
Other languages
English (en)
Other versions
CN103365546B (zh
Inventor
张文君
孙明焱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Cheetah Mobile Technology Co Ltd
Beijing Cheetah Network Technology Co Ltd
Zhuhai Baohaowan Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
Conew Network Technology Beijing Co Ltd
Shell Internet Beijing Security Technology Co Ltd
Zhuhai Juntian Electronic Technology Co Ltd
Beijing Kingsoft Internet Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Internet Security Software Co Ltd, Conew Network Technology Beijing Co Ltd, Shell Internet Beijing Security Technology Co Ltd, Zhuhai Juntian Electronic Technology Co Ltd, Beijing Kingsoft Internet Science and Technology Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201310344441.9A priority Critical patent/CN103365546B/zh
Publication of CN103365546A publication Critical patent/CN103365546A/zh
Application granted granted Critical
Publication of CN103365546B publication Critical patent/CN103365546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种浏览器窗口创建方法及装置。其中,该方法包括:为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,所述空闲窗口与所述工作窗口分别由不同的浏览器内核创建,且所述空闲窗口与所述源页面通过同一个浏览器内核创建;将工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过所述工作窗口完成与所述源页面之间的交互。通过本发明,达到了既保证源页面的功能完整性,又能满足用户手动选择目标页面核心类型需求的效果。

Description

浏览器窗口创建方法及装置
技术领域
本发明涉及计算机及互联网领域,具体而言,涉及一种浏览器窗口创建方法及装置。
背景技术
对于目前的双核浏览器,当用户的点击或者其它某种方式触发源页面的脚本创建一个窗口时,如果网页使用的是JavaScript的window.open方法,则会打开一个新页面,如果浏览器的核心切换引发进程的切换,源页面的脚本企图控制打开的新窗口的操作则由于跨进程跨核心的缘故而无法成功,呈现给用户的提示信息就是无法打开新窗口或者打开了一个空白窗口,甚至可能出现死循环而不断弹出新窗口。
造成上述问题的原因是核心切换这个动作直接影响了源页面的后续逻辑,最终导致源页面无法按照预期处理与用户的交互。
发明内容
本发明提供了一种浏览器窗口创建方法及装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种浏览器窗口创建方法,包括:为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,空闲窗口与工作窗口分别由不同的浏览器内核创建,且空闲窗口与源页面通过同一个浏览器内核创建;将工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过工作窗口完成与源页面之间的交互。
优选地,为请求创建新窗口的源页面创建空闲窗口和工作窗口,包括:判断源页面是否是通过调用脚本的方式请求创建新窗口;在判断结果为是的情况下,为源页面创建空闲窗口和工作窗口。
优选地,在判断源页面是否是通过调用脚本的方式请求创建新窗口之前,还包括:判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同;在判断结果为是的情况下,确定浏览器内核已经发生了切换,需要继续判断源页面是否是通过调用脚本的方式请求创建新窗口。
优选地,判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同,包括:根据预置的内核切换信息,判断新页面的目标统一资源定位符(URL)与源页面的URL是否属于同一个浏览器内核。
优选地,判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同,包括:根据用户手动切换内核的记录信息,判断新页面的目标统一资源定位符(URL)与源页面的URL是否属于同一个浏览器内核。
优选地,将工作窗口置于顶层并设置为能够与用户进行交互的活动状态,包括:将工作窗口至于顶层,并将用户的当前活动消息派发给工作窗口;将空闲窗口置于后台并设置为不与用户进行交互的隐藏状态,包括:禁止空闲窗口访问网络,并禁止用户与空闲窗口之间的交互。
根据本发明的另一方面,提供了一种浏览器窗口创建装置,创建模块,用于为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,空闲窗口与工作窗口分别由不同的浏览器内核创建,且空闲窗口与源页面通过同一个浏览器内核创建;设置模块,将工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过工作窗口完成与源页面之间的交互。
优选地,创建模块包括:第一判断单元,用于判断源页面是否是通过调用脚本的方式请求创建新窗口;创建单元,用于在第一判断单元的判断结果为是的情况下,为源页面创建空闲窗口和工作窗口。
优选地,创建模块还包括:第二判断单元,用于判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同;确定单元,用于在第二判断单元的判断结果为是的情况下,确定浏览器内核已经发生了切换,需要继续判断源页面是否是通过调用脚本的方式请求创建新窗口。
优选地,设置模块包括:第一设置单元,用于将工作窗口至于顶层,并将用户的当前活动消息派发给工作窗口;第二设置单元,用于禁止空闲窗口访问网络,并禁止用户与空闲窗口之间的交互。
通过本发明,采用为请求创建新窗口的源页面同时创建一个核心与源页面不同的工作窗口和一个核心与源页面相同的空闲窗口,并采用工作窗口作为新窗口与用户进行交互的方式,解决了核心切换这个动作直接影响了源页面的后续逻辑,最终导致源页面无法按照预期处理与用户的交互的问题,进而达到了既保证源页面的功能完整性,又能满足用户手动选择目标页面核心类型需求的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的浏览器窗口创建方法流程图;
图2是根据本发明优选实施例的一种新窗口创建进程的流程图;
图3是根据本发明优选实施例的另一种新窗口创建进程的流程图;
图4是根据本发明实施例的浏览器窗口创建装置的结构框图;
图5是根据本发明优选实施例一的浏览器窗口创建装置的结构框图;
图6是根据本发明优选实施例二的浏览器窗口创建装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在对本发明实施例进行描述之前,先对本发明实施例中涉及到的和相关的技术术语进行简要介绍:
JavaScript:是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,同时也是一种广泛用于客户端Web开发的脚本语言,常用来为HTML网页添加动态功能,比如响应用户的各种操作。
极速核心模式:是指浏览器使用Webkit内核渲染页面的一种核心模式。
兼容核心模式:是指浏览器使用Trident内核渲染页面的一种核心模式。
浏览器(Browser)进程:浏览器中的控制端,类似于通信中的服务端,它负责管理和协调所有的渲染器(Renderer)进程,全局只有一个Browser进程。
Renderer进程:浏览器中的被控端,细分为IE Renderer进程和Chrome Renderer进程,分别代表兼容核心渲染的页面和极速核心渲染的页面,类似于通信中的客户端,全局可能存在多个Renderer进程。
而且,为了更好地体现本发明实施例解决上述技术问题的思路,对相关技术进行进一步的补充描述,需要说明的是,这仅仅是为了对相关技术无法避免上述技术问题的原因做进一步的介绍:
目前,在弹出窗口式的广告场景下,源页面会根据JavaScript的window.open返回的句柄来判定本次弹出操作是否成功,如果没有成功,会反复重试。这样以来,如果页面核心发生切换,源页面的逻辑会认为窗口一直没有弹出成功,进而不停地弹出广告窗口,直到用户的机器资源被耗尽。
为了避免上述内容所描述的种种场景的发生,大多数浏览器使用子页面继承父页面核心类型的窗口创建方式,即如果是脚本创建的窗口,就强制该窗口和源窗口(即源页面的显示窗口)使用同一个进程和同一个核心来渲染。但是,这样也会带来很多不可控的场景,例如,在某些搜索页面中,当用户搜索的内容是网银的URL(必须用兼容核心才可以正常使用),如果该页面本身被用户从兼容核心切换到极速核心,则使用子页面继承父页面核心类型策略的浏览器就会无法处理。
显然,相关技术无法解决多核浏览器打开新窗口时浏览器内核切换所导致的打开窗口失败的问题,究其原因,在于子页面继承父页面核心类型的窗口创建方式并没有解决“核心切换这个动作直接影响了源页面的后续逻辑”的问题。
以下实施例可以应用到多核浏览器(例如双核浏览器)中,该浏览器可以是用在计算机上的浏览器,或者也可以是用在移动设备上的浏览器。以使用微软系统的PC为例,对于运行在该系统的双核浏览器而言,其具备两个内核:Trident内核和Webkit内核,当用户在这两个内核之间进行切换时,只要需要在新窗口中显示的新页面的内核与源页面的内核不同时,就可以使用适用以下实施例。但在实际应用中,不但不限于此,对于移动设备上的浏览器或者位于其他能够安装浏览器的设备上的浏览器均可以适用以下实施例。
图1是根据本发明实施例的浏览器窗口创建方法流程图,如图1所示,该方法包括以下步骤:
步骤S102,为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,空闲窗口与工作窗口分别由不同的浏览器内核创建,且空闲窗口与源页面通过同一个浏览器内核创建;
步骤S104,将工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过工作窗口完成用户与源页面之间的交互。
通过上述步骤,在浏览器内核已经发生了切换的情况下,如果在源页面基础上需要打开新窗口,则需要判断在新窗口中即将显示的新页面的内核是否与源页面的内核相同,在不同的情况下,同时为源页面创建一个核心(即内核)与源页面不同的工作窗口和一个核心(即内核)与源页面相同的空闲窗口,使用工作窗口来显示新页面,并通过工作窗口与用户进行交互。具体地,在发生了内核切换场景下,创建源页面的脚本无法再识别切换后的内核导致源页面的逻辑发生错误,这时只需要初始化一个与源页面的内核相同的窗口(即空闲窗口),这样,脚本就能够识别了,源页面会认为这符合其自身的逻辑而继续按预期执行后续的逻辑,同时,在前台创建一个与源页面的内核不同的真实窗口(即工作窗口),通过该真实窗口就可以继续执行相关的渲染和与用户之间的交互操纵了。也就是说,只要让源页面不中断其自身逻辑的运行,就可以保证源页面的功能完整性,进而满足用户在内核切换场景下的交互需求。
在本实施例的一个优选实施方式中,当为请求创建新窗口的源页面创建空闲窗口和工作窗口时,可以采用如下方式来实现:判断源页面是否是通过调用脚本的方式请求创建新窗口,在判断结果为是的情况下,为源页面创建空闲窗口和工作窗口。而且,在判断源页面是否是通过调用脚本的方式请求创建新窗口之前,还可以先判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同,在判断结果为是的情况下,就可以确定浏览器内核已经发生了切换,需要继续判断所述源页面是否是通过调用脚本的方式请求创建新窗口。在确定了用户切换了浏览器内核,且确定源页面是通过调用脚本的方式请求创建新窗口的情况,就可以为源页面同时创建一个空闲窗口和一个工作窗口,并通过工作窗口来显示需要打开的新页面。
其中,当判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同时,可以采用这样的方式:(1)根据预置的内核切换信息,判断需要打开页面的目标统一资源定位符(URL)与源页面的URL是否属于同一个浏览器内核;(2)根据用户手动切换内核的记录信息,判断需要打开页面的目标统一资源定位符(URL)与源页面的URL是否属于同一个浏览器内核。当然,这仅仅是两个优选实施方式,在实际应用中并不局限于此。
优选地,源页面的浏览器内核包括以下之一:Webkit内核、Trident内核。在实际应用中,这两种内核也是在目前阶段的多核浏览器尤其是双核浏览器所普遍采用的两个内核。例如,目前浏览器市场上比较流行的猎豹浏览器、火狐浏览器均是采用了这两种内核。
在本实施例中,将工作窗口置于顶层并设置为能够与用户进行交互的活动状态是指将工作窗口至于顶层,并将用户的当前活动消息派发给工作窗口。将空闲窗口置于后台并设置为不与用户进行交互的隐藏状态是指禁止空闲窗口访问网络,并禁止用户与空闲窗口之间的交互。
通过本实例提供的浏览器窗口创建方法,既保证了源页面的功能完整性,又能满足用户手动选择目标页面核心类型的需求。
下面通过有效实施例(本优选实例以双核浏览器为例进行描述)以及图2和图3对上述实施例提供的浏览器窗口创建方法进行更加详细的描述。
需要说明的是,在本优选实施例中,将首先对于如何判断双核浏览器发生了内核切换(可能是用户手动完成的内核切换也可能根据需要打开页面的属性进行了判断之后自动完成的内核切换)的过程,以及如何判断是否是通过脚本调用的方式来请求创建新窗口的过程进行描述。然后,再对在切换了内核且通过脚本调用方式的场景下如何为源页面创建两个不同的窗口(工作窗口和空闲窗口)的过程进行描述。
对于内核切换的判断过程和判定以脚本调用方式请求创建新窗口的过程,可以采用以下两种方式:
方式一
请参考图2,图2是根据本发明优选实施例的一种新窗口创建进程的流程图,如图2所示,该流程包括如下步骤:
步骤S202,确定当前的源页面请求打开新窗口;需要说明的是,在该步骤之前,需要先捕获并标记源页面使用JavaScript脚本的window.open动作,这是为了将这种特殊的动作和普通的超链接打开新窗口的方式相区分开,即在新创建的窗口属性中标记特殊来源;
步骤S204,判断是否已经切换核心,包括:判断要打开的URL和当前页面的URL是否属于同一核心,如果不属于同一核心(即用户切换了核心),则执行步骤S206,否则(即用户没有切换核心),执行步骤S210;
步骤S206,判断创建新窗口的请求是源页面通过使用脚本(JavaScript脚本的window.open动作)方式发起的,即继续判断该脚本是否已经事先被源页面标记,如果已经标记过,执行步骤S210(复用原有核心的进程),否则,执行步骤S208(在新创建的进程中创建窗口并显示);
步骤S208,创建新进程,并在新创建的进程中创建窗口并显示;
步骤S210,复用原有核心的进程。
但是,如果本优选实施例只执行到步骤S208就终止的话,容易会存在一些问题:在JavaScript脚本创建新窗口的情境下,虽然避免了进程切换导致的逻辑性的问题,但是同时也因为没有记住用户的选择,而和用户的使用习惯相违背,同时也因为源页面的核心类型固定,而束缚了子页面的可选择性,一旦出现子页面必须用某种特定核心打开才能保证功能正常的时候,将会导致后续的用户操作无法进行,比如有些银行的网站,必须用兼容核心打开才可以支付,而有的HTML5的网页则必须用极速核心(即Webkit内核)才可以正常渲染。
方案二
请参考图3,图3是根据本发明优选实施例的另一种新窗口创建进程的流程图,如图3所示,该流程包括如下步骤:
步骤S302,确定当前的源页面请求打开新窗口;
步骤S304,根据内核切换信息(包括:用户的手动切换核心的记录信息或浏览器内置的核心切换配置信息),判断是否需要切换浏览器的核心,如果需要切换,执行步骤S306,如果不需要切换,则执行步骤S308(复用原有的进程);
步骤S306,创建新进程,并在新创建的进程中创建窗口并显示;
步骤S308,复用原有核心的进程。
但是,如果本优选实施例只执行到步骤S308就终止的话,容易会存在一些问题:虽然遵从了用户的使用习惯,但是又带来了功能上可能的缺失,导致源页面各种不可预期的后果。
基于执行了图2及图3所示的流程之后仍然会存在一些技术缺陷,以下对如何为源页面创建两个不同的窗口(工作窗口和空闲窗口)的过程进行描述。
首先,将用户操作划分为两个场景:1、在极速核心(Webkit)的页面中,调用脚本创建了一个目标URL为兼容核心(Trident)的页面;2、在兼容核心(Trident)的页面中,调用脚本创建了一个目标URL为极速核心(Webkit)的页面。
以下分别对这两个场景做分别描述:
在场景1中,为源页面创建两个不同的窗口(工作窗口和空闲窗口)的过程包括以下步骤:
(1)在Webkit的代码中,对响应普通Dispatch消息创建新窗口的FrameLoaderClientImpl::dispatchCreatePage函数做修改,在此处将源页面的WebView标记为Dsipatch方式;
(2)在极速核心的Renderer渲染端,为需要创建的新窗口创建一个入口:RenderViewImpl::createView,在此处,可以对源页面的WebView标记进行判断,如果源页面的WebView没有标记为Dispatch方式,将需要创建的新窗口置为以调用脚本JavaScript方式创建的窗口,并发送创建窗口的请求消息给浏览器(Browser)控制端;
(3)Browser控制端接收到创建窗口的请求消息后,首先会根据本地切换内核的预置库和用户手动切换核心的用户库,判断要打开的目标URL是否需要切换内核或用户已经切换内核,如果需要切换内核或用于已经切换内核,再次判断这个操作是否来自脚本JavaScript,如果来自则会执行这个创建操作,创建一个新的Tab,并创建一个新的同核心的窗口;同时,再发起一个目标URL的另外一个核心的渲染请求,这时Browser进程会在新Tab的基础上创建一个异核的窗口,并发送消息通知Renderer进程;
(4)Renderer进程接到Browser进程的通知就会知道创建是否成功,并且还能得知是否发生了核心的切换,如果发生了,则在RenderViewImpl::canHandleRequest处把Browser进程新创建的那个同核心的窗口的所有Navigate请求取消,即不访问网络,也不会进行后续的交互,也就是将此窗口置于一个后台闲置的状态。
(5)Browser进程将创建的两个新窗口置于同一个Tab中,并将同核心的置于后台,不活动,也不响应和用户的交互,而把异核心的新窗口置于顶层,并将用户的当前活动消息派发给它处理。
在场景2中,为源页面创建两个不同的窗口(工作窗口和空闲窗口)的过程包括以下步骤:
(1)通过接管IE控件WebBrowserSinker的接口NewWindow3,让兼容核心的渲染端模拟发送和极速核心一样的IPC消息,并通知Browser要创建新窗口;
(2)Browser进程的IO线程中的RenderMessageFilter::OnMsgCreateWindow将接管此消息,并在UI线程中创建新Tab,接下来的操作和场景1中的步骤(5)相同;
(3)在兼容的Renderer端,通过接管IE控件的BeforeNavigate2接口,在次发送IPC消息询问Browserer进程,判断打开的新窗口的URL是否和当前的核心一致,如果一致,则所有的流程继续下去,如果不一致,则将BeforeNavigate2参数中的*Cancel赋值为VARIANT_TRUE,Navigate请求被取消,即不发起任何后续的交互操作,这个新窗口会在后台保持静默。
通过本实例提供的浏览器窗口创建方法,解决了相关技术中核心切换这个动作直接影响了源页面的后续逻辑,最终导致源页面无法按照预期处理与用户的交互的问题,而且,也避免了大多数浏览器使用的子页面继承父页面的核心类型的方法的过程中,容易在诸如搜索页面等特定场景下打开窗口时失败进而导致多核浏览器打开新窗口时由于浏览器内核切换容易出现的种种问题,进而达到了既保证源页面的功能完整性,又能满足用户手动选择目标页面核心类型需求的效果。
本实施例还提供了一种浏览器窗口创建装置,该装置用于实现上述浏览器窗口创建方法,图4是根据本发明实施例的浏览器窗口创建装置的结构框图,如图4所示,该装置包括:创建模块10以及设置模块20。其中,创建模块10,用于为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,空闲窗口与工作窗口分别由不同的浏览器内核创建,且空闲窗口与源页面通过同一个浏览器内核创建;设置模块20,将工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过工作窗口完成与源页面之间的交互。
通过该浏览器窗口创建装置,达到了既保证源页面的功能完整性,又能满足用户手动选择目标页面核心类型需求的效果。
下面通过有效实施例一和图5、以及优选实施例二和图6对上述实施例提供的浏览器窗口创建装置进行更加详细的说明。
图5是根据本发明优选实施例一的浏览器窗口创建装置的结构框图,如图5所示,在该优选窗口创建装置中,创建模块10可以包括:第一判断单元12,用于判断源页面是否是通过调用脚本的方式请求创建新窗口;创建单元14,用于在第一判断单元12的判断结果为是的情况下,为源页面创建空闲窗口和工作窗口。在本优选实施例中,先确定请求创建新窗口的源页面是否是通过调用脚本的方式请求,例如,在实际应用中,通常是通过JavaScript脚本的windows.open来调用一个新窗口的。
在本优选实施例中,创建模块10还可以包括:第二判断单元16,用于判断需要在新窗口中显示的新页面的浏览器内核是否与源页面的浏览器内核相同;确定单元18,用于在第二判断单元16的判断结果为是的情况下,确定用户已经切换了浏览器内核,需要继续判断源页面是否是通过调用脚本的方式请求创建新窗口。在判断针对源页面需要调用的新窗口能够显示的新页面的浏览器内核与源页面的浏览器内核是否相同的过程中,通常是通过判断这两个页面的通一资源定位符(URL)是否属于同一个核心的方式来实现的。
在本优选实施例中,设置模块20可以包括:第一设置单元22,用于将工作窗口至于顶层,并将用户的当前活动消息派发给工作窗口;第二设置单元24,用于禁止空闲窗口访问网络,并禁止用户与空闲窗口之间的交互。
优选地,源页面的浏览器内核包括以下之一:Webkit内核、Trident内核。例如,目前浏览器市场上比较流行的猎豹浏览器、火狐浏览器均是采用了这两种内核。
当然,在实际应用中,窗口创建装置的结构也可以采用优选实施例二提供的方式来实现。
图6是根据本发明优选实施例二的浏览器窗口创建装置的结构框图,为了方便同时描述各个功能单元的主要功能,同时将其主要功能也展示在图6中。如图6所示,该装置包括:
判定单元:用于判断创建窗口的源头是来自JavaScript还是普通的Dispatch消息处理;
创建单元:针对JavaScript创建的新窗口,创建两个新窗口,一个和源页面相同核心的空闲窗口,以及一个和源页面核心不同的工作窗口;
处理单元:为了避免不必要的资源浪费,同核心的空闲窗口是不需要发起任何网络操作的,处理单元的设置仅仅是为了满足JavaScript认为创建单元的创建动作是成功的,且属性可设置的;
显示单元:用于将异核的窗口置于顶层,并且设为活动状态,并负责和用户的交互,将同核的窗口置于后台,设为隐藏状态。
需要说明的是,本优选实施例提供的各个功能单元能够保证源网页逻辑的正常执行,同时满足用户核心切换的自主性。而且,通过上述各个功能单元的实现过程可以一方面满足网页对指定核心的依赖,另一方面满足用户自主选择新窗口打开的核心类型,同时也可以兼容源网页的原生逻辑且保证功能性。
对于图6所示的创建装置,可以通过创建两个新窗口,将一个窗口置于前台活动状态,将另一个窗口置于后台并空闲状态的方式,可以在不打断双核切换的过程,同时又兼顾到页面脚本的兼容性;同时,通过取消后台空闲窗口创建的Navigate请求,避免一切不必要的开销,减少资源占用,确保在切换内核时源网页的功能性。
从以上的描述中,可以看出,本发明实现了如下技术效果:采用为请求创建新窗口的源页面同时创建一个核心与源页面不同的工作窗口和一个核心与源页面相同的空闲窗口,并采用工作窗口作为新窗口与用户进行交互的方式,解决了相关技术中核心切换这个动作直接影响了源页面的后续逻辑,最终导致源页面无法按照预期处理与用户的交互的问题,同时也解决了大多数浏览器使用的子页面继承父页面的核心类型的方法无法解决诸如搜索页面等特定场景下打开窗口失败的问题,进而达到了既保证源页面的功能完整性,又能满足用户手动选择目标页面核心类型需求的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种浏览器窗口创建方法,其特征在于,包括:
为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,所述空闲窗口与所述工作窗口分别由不同的浏览器内核创建,且所述空闲窗口与所述源页面通过同一个浏览器内核创建;
将所述工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将所述空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过所述工作窗口完成与所述源页面之间的交互。
2.根据权利要求1所述的方法,其特征在于,为请求创建新窗口的源页面创建空闲窗口和工作窗口,包括:
判断所述源页面是否是通过调用脚本的方式请求创建新窗口;
在判断结果为是的情况下,为所述源页面创建所述空闲窗口和所述工作窗口。
3.根据权利要求2所述的方法,其特征在于,在判断所述源页面是否是通过调用脚本的方式请求创建新窗口之前,还包括:
判断需要在新窗口中显示的新页面的浏览器内核是否与所述源页面的浏览器内核相同;
在判断结果为是的情况下,确定浏览器内核已经发生了切换,需要继续判断所述源页面是否是通过调用脚本的方式请求创建新窗口。
4.根据权利要求3所述的方法,其特征在于,判断需要在新窗口中显示的新页面的浏览器内核是否与所述源页面的浏览器内核相同,包括:
根据预置的内核切换信息,判断所述新页面的目标统一资源定位符URL与所述源页面的URL是否属于同一个浏览器内核。
5.根据权利要求3所述的方法,其特征在于,判断需要在新窗口中显示的新页面的浏览器内核是否与所述源页面的浏览器内核相同,包括:
根据用户手动切换内核的记录信息,判断所述新页面的目标统一资源定位符URL与所述源页面的URL是否属于同一个浏览器内核。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
将所述工作窗口置于顶层并设置为能够与用户进行交互的活动状态,包括:将所述工作窗口至于顶层,并将用户的当前活动消息派发给所述工作窗口;
将所述空闲窗口置于后台并设置为不与用户进行交互的隐藏状态,包括:禁止所述空闲窗口访问网络,并禁止用户与所述空闲窗口之间的交互。
7.一种浏览器窗口创建装置,其特征在于,包括:
创建模块,用于为请求创建新窗口的源页面创建空闲窗口和工作窗口,其中,所述空闲窗口与所述工作窗口分别由不同的浏览器内核创建,且所述空闲窗口与所述源页面通过同一个浏览器内核创建;
设置模块,将所述工作窗口置于顶层且设置为能够与用户进行交互的活动状态,并将所述空闲窗口置于后台且设置为不与用户进行交互的隐藏状态,以使用户通过所述工作窗口完成与所述源页面之间的交互。
8.根据权利要求7所述的装置,其特征在于,所述创建模块包括:
第一判断单元,用于判断所述源页面是否是通过调用脚本的方式请求创建新窗口;
创建单元,用于在所述第一判断单元的判断结果为是的情况下,为所述源页面创建所述空闲窗口和所述工作窗口。
9.根据权利要求8所述的装置,其特征在于,所述创建模块还包括:
第二判断单元,用于判断需要在新窗口中显示的新页面的浏览器内核是否与所述源页面的浏览器内核相同;
确定单元,用于在所述第二判断单元的判断结果为是的情况下,确定浏览器内核已经发生了切换,需要继续判断所述源页面是否是通过调用脚本的方式请求创建新窗口。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述设置模块包括:
第一设置单元,用于将所述工作窗口至于顶层,并将用户的当前活动消息派发给所述工作窗口;
第二设置单元,用于禁止所述空闲窗口访问网络,并禁止用户与所述空闲窗口之间的交互。
CN201310344441.9A 2013-08-08 2013-08-08 浏览器窗口创建方法及装置 Active CN103365546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310344441.9A CN103365546B (zh) 2013-08-08 2013-08-08 浏览器窗口创建方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310344441.9A CN103365546B (zh) 2013-08-08 2013-08-08 浏览器窗口创建方法及装置

Publications (2)

Publication Number Publication Date
CN103365546A true CN103365546A (zh) 2013-10-23
CN103365546B CN103365546B (zh) 2017-05-24

Family

ID=49367030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310344441.9A Active CN103365546B (zh) 2013-08-08 2013-08-08 浏览器窗口创建方法及装置

Country Status (1)

Country Link
CN (1) CN103365546B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572271A (zh) * 2015-02-04 2015-04-29 北京瑞星信息技术有限公司 多标签页浏览器防假死的方法和系统
CN104883395A (zh) * 2015-04-30 2015-09-02 深圳市华讯方舟科技有限公司 一种web网管系统自动锁屏的方法及装置
CN105224167A (zh) * 2015-08-31 2016-01-06 深圳市茁壮网络股份有限公司 一种窗口切换方法及装置
CN105867937A (zh) * 2016-04-18 2016-08-17 浙江慧脑信息科技有限公司 一种交互式多窗设计方法
CN110297634A (zh) * 2018-03-23 2019-10-01 山东华软金盾软件股份有限公司 基于webkit内核的应用程序展示方法
CN110489684A (zh) * 2019-08-16 2019-11-22 腾讯科技(深圳)有限公司 用于显示浏览器页面的方法、设备、装置和存储介质
CN110574057A (zh) * 2017-12-20 2019-12-13 谷歌有限责任公司 基于机器学习建议动作
CN112231088A (zh) * 2020-10-27 2021-01-15 海信电子科技(深圳)有限公司 一种浏览器进程优化方法及显示设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101655863A (zh) * 2009-04-24 2010-02-24 北京搜狗科技发展有限公司 在浏览器中加载网页的方法及浏览器
US20110264647A1 (en) * 2008-01-16 2011-10-27 Yahoo!, Inc. Query processing for web search
CN102467565A (zh) * 2010-11-19 2012-05-23 奇智软件(北京)有限公司 一种浏览器内核切换的方法
CN102890724A (zh) * 2012-10-25 2013-01-23 北京奇虎科技有限公司 网页加载方法和装置
CN103019832A (zh) * 2011-09-20 2013-04-03 百度在线网络技术(北京)有限公司 浏览器的切换控制方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110264647A1 (en) * 2008-01-16 2011-10-27 Yahoo!, Inc. Query processing for web search
CN101655863A (zh) * 2009-04-24 2010-02-24 北京搜狗科技发展有限公司 在浏览器中加载网页的方法及浏览器
CN102467565A (zh) * 2010-11-19 2012-05-23 奇智软件(北京)有限公司 一种浏览器内核切换的方法
CN103019832A (zh) * 2011-09-20 2013-04-03 百度在线网络技术(北京)有限公司 浏览器的切换控制方法及装置
CN102890724A (zh) * 2012-10-25 2013-01-23 北京奇虎科技有限公司 网页加载方法和装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572271A (zh) * 2015-02-04 2015-04-29 北京瑞星信息技术有限公司 多标签页浏览器防假死的方法和系统
CN104883395A (zh) * 2015-04-30 2015-09-02 深圳市华讯方舟科技有限公司 一种web网管系统自动锁屏的方法及装置
CN105224167A (zh) * 2015-08-31 2016-01-06 深圳市茁壮网络股份有限公司 一种窗口切换方法及装置
CN105224167B (zh) * 2015-08-31 2018-07-06 深圳市茁壮网络股份有限公司 一种窗口切换方法及装置
CN105867937A (zh) * 2016-04-18 2016-08-17 浙江慧脑信息科技有限公司 一种交互式多窗设计方法
CN105867937B (zh) * 2016-04-18 2019-02-12 浙江慧脑信息科技有限公司 一种交互式多窗设计方法
CN110574057A (zh) * 2017-12-20 2019-12-13 谷歌有限责任公司 基于机器学习建议动作
CN110574057B (zh) * 2017-12-20 2023-10-31 谷歌有限责任公司 基于机器学习建议动作
CN110297634A (zh) * 2018-03-23 2019-10-01 山东华软金盾软件股份有限公司 基于webkit内核的应用程序展示方法
CN110489684A (zh) * 2019-08-16 2019-11-22 腾讯科技(深圳)有限公司 用于显示浏览器页面的方法、设备、装置和存储介质
CN112231088A (zh) * 2020-10-27 2021-01-15 海信电子科技(深圳)有限公司 一种浏览器进程优化方法及显示设备
CN112231088B (zh) * 2020-10-27 2023-10-27 Vidaa(荷兰)国际控股有限公司 一种浏览器进程优化方法及显示设备

Also Published As

Publication number Publication date
CN103365546B (zh) 2017-05-24

Similar Documents

Publication Publication Date Title
CN103365546A (zh) 浏览器窗口创建方法及装置
KR102179149B1 (ko) 페이지 컴포넌트 동적 레이아웃
US11800192B2 (en) Bullet screen processing method and apparatus, electronic device, and computer-readable storage medium
US20230161471A1 (en) Video-based interaction and video processing methods, apparatus, device, and storage medium
US10303748B2 (en) Method and device for providing webpage browsing based on web browser engine kernel
WO2017219833A1 (zh) 一种应用程序页面开发管理方法及装置
CN109525850A (zh) 一种直播方法、装置及系统
KR102229852B1 (ko) 애플리케이션을 시작하는 방법 및 시스템
CN109842818A (zh) 一种视频播放方法、装置、计算机设备及存储介质
US20190230311A1 (en) Video interface display method and apparatus
CN105159677A (zh) 终端用户界面的受控显示方法及装置
US20230144966A1 (en) Method, apparatus, and device for video-based interaction, and storage medium
CN111611037B (zh) 用于电子书的视图对象处理方法、电子设备及存储介质
CN113296653B (zh) 一种仿真交互模型构建方法、交互方法及相关设备
CN107045546B (zh) 一种网页处理方法、装置及智能终端
CN108563477A (zh) 一种页面事件响应方法和装置
CN105095220B (zh) 一种浏览器实现方法、终端和虚拟化代理装置
CN106339264A (zh) 基于Ajax异步调用技术实现的双公示数据web页面展示方法和系统
CN111435382B (zh) 一种页面的登录校验方法及终端
CN114385124A (zh) 基于Vue框架的独立页面的跳转方法、装置及设备
CN108664498B (zh) 一种网页内容的显示方法及终端
CN105721919A (zh) 应用切换处理方法、装置及智能机顶盒设备
CN107358095A (zh) 一种威胁检测方法、装置及网络系统
CN108470125B (zh) 一种基于虚拟桌面的ole重定向方法及系统
CN108228307B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100041 A-0071 2, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Co-patentee after: Beijing Cheetah Network Technology Co.,Ltd.

Patentee after: Beijing Cheetah Mobile Technology Co.,Ltd.

Co-patentee after: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee after: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee after: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100022 the 12 level of Fuxing International Center, 237 Chaoyang North Road, Chaoyang District, Beijing.

Co-patentee before: BEIJING KINGSOFT NETWORK TECHNOLOGY Co.,Ltd.

Patentee before: SHELL INTERNET (BEIJING) SECURITY TECHNOLOGY Co.,Ltd.

Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee before: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee before: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20181204

Address after: Room 105-53967, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Zhuhai Leopard Fun Technology Co.,Ltd.

Address before: 100041 A-0071 2, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Co-patentee before: Beijing Cheetah Network Technology Co.,Ltd.

Patentee before: Beijing Cheetah Mobile Technology Co.,Ltd.

Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Co-patentee before: ZHUHAI JUNTIAN ELECTRONIC TECHNOLOGY Co.,Ltd.

Co-patentee before: CONEW NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

TR01 Transfer of patent right