如何在Webkit/Gtk中获取网页的超链接列表?
这里正在创建一个窗口并生成一个网页:
int main(int argc, char* argv[])
{
WebKitWebView *webView;
GtkWidget *main_window;
gtk_init(&argc, &argv);
if (!g_thread_supported())
g_thread_init(NULL);
#ifndef GTK_API_VERSION_2
disablePlugin("Shockwave Flash");
#endif
main_window = createWindow(&webView);
gchar *uri =(gchar*)(argc > 1 ? argv[1] : "http://www.google.com/");
gchar *fileURL = filenameToURL(uri);
webkit_web_view_load_uri(webView, fileURL ? fileURL : uri);
g_free(fileURL);
gtk_widget_grab_focus(GTK_WIDGET(webView));
gtk_widget_show_all(main_window);
gtk_main();
return 0;
}
这里有一个通知说正在加载页面:
void FrameLoaderClient::postProgressFinishedNotification()
{
WebKitWebView* webView = getViewFromFrame(m_frame);
WebKitWebViewPrivate* privateData = webView->priv;
if (!privateData->disposing)
g_signal_emit_by_name(webView, "load-finished", m_frame);
}
现在页面加载后,我想获取可聚焦节点的列表,例如超链接、复选框。
我该怎么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您想要了解的是如何从 WebKit 访问 DOM。 WebKit 有一个
webkit_web_view_get_dom_document()
(http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html#webkit-web-view-get-dom-document) 返回WebKitDOMDocument
(https://live.gnome.org/WebKitGtk/ProgrammingGuide/Reference< /a>)。这将使您可以直接访问 DOM,并具有诸如webkit_dom_document_get_elements_by_tag_name()
之类的方法来查询 DOM。你可以这样做:这不是完美的代码,但你应该从中得到想法。如果您想查看比较全面的示例,请查看此处: http://www.opensource.apple.com/source/WebKit/WebKit-7533.16/gtk/tests/testdomdocument.c。希望有帮助。
What you want to look at is how to access the DOM from WebKit. WebKit has a
webkit_web_view_get_dom_document()
(http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html#webkit-web-view-get-dom-document) which returns an instance ofWebKitDOMDocument
(https://live.gnome.org/WebKitGtk/ProgrammingGuide/Reference). This will give you direct access to the DOM and has methods likewebkit_dom_document_get_elements_by_tag_name()
to query the DOM. You could do something like this:This is not perfect code, but you should get the idea from it. If you want to take a look at a somewhat comprehensive sample look here: http://www.opensource.apple.com/source/WebKit/WebKit-7533.16/gtk/tests/testdomdocument.c. Hope that helps.