0

在某些 jquery 更新了某些内容后,我想获取加载到 webview 中的页面的实际内容

$(document).ready(function() {
$("#main").append('<p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>Test</p>');
});

页面更新后,我尝试使用以下命令 [vala syntax] 获取页面内容

web_view.get_main_frame ().get_data_source().get_data().str

但我只得到原始内容(即使加载完成)

使用

web_view.get_dom_document().document_element.text_content

我得到了实际的内容,但标签被删除了。

我想我可以走整棵树来获取实际的文档,但应该是一种更简单的方法。

编辑:我的解决方案

this.web_view.load_finished.connect ((source, frame) => {
 stderr.printf(this.web_view.get_dom_document().body.get_inner_html());
}

几年后当我读到这篇文章时,我可能会觉得这很糟糕,但现在我会继续下去。

4

2 回答 2

1

在 HTML DOM 中,元素实现了 HTMLElement 接口。WebKit 中的HTMLElement 接口包括outerHTML属性。此属性返回一个字符串,其中包含元素及其所有子元素的序列化标记。我不熟悉 Vala,但根据您的代码片段,可以这样访问:

web_view.get_dom_document().document_element.outer_html
于 2013-01-19T04:20:54.517 回答
0

Vala 中的正确答案是这样的:

webview.get_dom_document().get_body().get_inner_html ()
于 2013-05-31T09:47:04.040 回答