2014-04-23 30 views
0

我正在嘗試從WebView控件(Cocoa應用程序)中的遠程服務器加載的網頁內導航。我想導航到一個特定的標籤,我可以在該頁面的HTML代碼中看到。這一切的目的是顯示我感興趣的Web頁面頂部的HTML頁面部分。在WebView控件的網頁內導航

我知道,在HTML代碼中,您可以使用類似#MIDDLE,#TOP等的內容進行導航。但是,是否可以使用WebView API從HTML代碼之外進行導航?

感謝您的提前回復!

回答

0

我在其他問題的幫助下找到了我的問題的答案(How to scroll HTML page to given anchor using jQuery or Javascript?)。

下面的一段代碼對我來說是訣竅。它在加載到WebView組件self.webView中的HTML數據中搜索具有attribute: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]; 
     } 
    } 
}