我试图在我的WebView控件(Cocoa应用程序)中从远程服务器加载的网页中导航。我想导航到我可以在该页面的HTML代码中看到的特定标签。这一切的目的是在WebView控件的顶部显示我感兴趣的HTML页面部分。
我知道在HTML代码中你可以使用像#MIDDLE,#TOP等来导航。但是,这可以通过使用WebView API从HTML代码外部进行吗?
感谢你提前回复!
答案 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];
}
}
}