webkit:如何通过javascript添加内容后获取页面的实际内容?

时间:2013-01-17 20:01:55

标签: webkit vala

我希望在某些内容被某些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语法]

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());
}

当我从现在起几年后读到这篇文章时,我可能会觉得这很糟糕但是现在我会继续这样做。

2 个答案:

答案 0 :(得分:1)

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

web_view.get_dom_document().document_element.outer_html

答案 1 :(得分:0)

Vala中的正确答案是:

webview.get_dom_document().get_body().get_inner_html ()