码迷,mamicode.com
首页 > Web开发 > 详细

WebPage

时间:2015-02-28 18:45:14      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

       顾名思义,WebPage就是指网页。这一点也可以从Webkit的WebCore的架构看出来:WebCore->page。在page目录下,实现了一些DOM的全局对象,比如Window,Timer,popup窗口,DOM的选择,焦点的控制、history等等。

      总之,与WebView类似,WebPage就是WebCore用来编辑、查看网页内容的对象。

WebCore::page:

        void setMainFrame();
       
Frame* mainFrame() const ;

       
BackForwardList* backForwardList() const;
        bool goBack();
        bool goForward();
        bool canGoBackOrForward(int distance) const;

page的以下类的定义,需要平台实现,使得page具有缺省的client:

        struct PageClients {
            WTF_MAKE_NONCOPYABLE(PageClients); WTF_MAKE_FAST_ALLOCATED;
        public:
            PageClients();
            ~PageClients();


            AlternativeTextClient* alternativeTextClient;
            ChromeClient* chromeClient;
#if ENABLE(CONTEXT_MENUS)
            ContextMenuClient* contextMenuClient;
#endif
            EditorClient* editorClient;
            DragClient* dragClient;
            InspectorClient* inspectorClient;
            RefPtr<BackForwardList> backForwardClient;
        };

   我们来看看Qt是如何实现的,Qt实现了一个QWebPage,里面的一些方法是为了呈现page而定义的:

QWebFrame * mainFrame () const
QWebHistory * history () const
QWebFrame * currentFrame () const
   
bool findText ( const QString & subString, FindFlags options = 0 )
bool focusNextPrevChild ( bool next )
bool forwardUnsupportedContent () const
QWebFrame * frameAt ( const QPoint & pos ) const
bool hasSelection () const

WebPage

标签:

原文地址:http://blog.csdn.net/lichwei1983/article/details/43987351

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!