在WebView控件的网页中导航

时间:2014-04-23 12:05:15

标签: html cocoa webkit

我试图在我的WebView控件(Cocoa应用程序)中从远程服务器加载的网页中导航。我想导航到我可以在该页面的HTML代码中看到的特定标签。这一切的目的是在WebView控件的顶部显示我感兴趣的HTML页面部分。

我知道在HTML代码中你可以使用像#MIDDLE,#TOP等来导航。但是,这可以通过使用WebView API从HTML代码外部进行吗?

感谢你提前回复!

1 个答案:

答案 0 :(得分:0)

我在另一个问题(How to scroll HTML page to given anchor using jQuery or Javascript?)的帮助下找到了我的问题的答案。

下面的代码对我有用。它在WebView组件self.webView中加载的HTML数据中搜索具有属性:class =“container”的HTML元素。

-(void) scrollMyImportantHTMLPartInView
{
    // Get a list of HTML elements that contain attribute class = "container" (eg. <div class "container">)
    DOMNodeList *nodeList = [[[self.webView mainFrame] DOMDocument] getElementsByClassName: @"container"];
    if( nodeList && nodeList.length >= 1 ) {

        // get the first node (class = "container") from the list
        DOMNode *domNode = [nodeList item:0];

        // Make sure it's a DOM element type
        if( domNode.nodeType == DOM_ELEMENT_NODE ) {

            // It's now save to cast from DOMNode* to DOMElement*
            DOMElement* domElement = (DOMElement*) domNode;

            // Scroll begining of HTML node into view
            [domElement scrollIntoView: YES];
        }
    }
}