2013-01-17 21 views
0

我想我加载到网页视图网页的实际内容,有些内容已经被一些jQuery的webkit:如何在通过javascript添加内容之后获取页面的实际内容?

$(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 

但我只使用get(即使完成加载)的原始内容

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

我可能会发现这awfull时,我会从现在开始阅读一些年,但现在我也有去。

回答

1

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

web_view.get_dom_document().document_element.outer_html 
+0

没错。这应该是这样的。我的问题是与Vala语法/绑定。我无法在继承树中找到任何HTMLElementInterface http://valadoc.org/#!api=webkit-1.0/WebKit.DOMElement – registeringso

+0

编辑:这是另一种方式(http://valadoc.org/#!api = webkit-1.0/WebKit.DOMHTMLElement)htmlElement位于domelement之上,我不知道如何从webview(或webview.dom_document)获取htmlelement。总共newB里面;) – registeringso

0

在瓦拉正确的答案是这样的:

webview.get_dom_document().get_body().get_inner_html() 
相关问题