从 c# 中的 awesomium webcontrol 获取元素
Get Element from awesomium webcontrol in c#
我需要获取 'p' 元素,我使用以下代码
dynamic document = webControl1.ExecuteJavascriptWithResult("document");
var p = document.getElementsByTagName("p");
但是没用
我使用 Awesomium v1.7.5.1 和 visual studio 2010
您需要这些段落中的哪些具体数据?
在我下面发布的当前示例中,获取每个段落的 innerHTML。 javascript 可以是:
function GetContents() {
var arr = [];
var paragraphs = document.getElementsByTagName('p');
for (var i = 0; i < paragraphs.length; i++) {
arr.push(paragraphs[i].innerHTML);
}
return arr;
}
GetContents();
你可以直接执行:
JSObject paragraphs = webControl1.ExecuteJavascriptWithResult("function GetContents() {var arr = [];var paragraphs = document.getElementsByTagName('p');for (var i = 0; i < paragraphs.length; i++) {arr.push(paragraphs[i].innerHTML);}return arr;} GetContents();")
然而,就我而言,似乎我一直在为可变段落获取未定义的内容。我的解决方法是将 GetContents()
放入 alert()
函数中。
变成这样:
JSObject paragraphs = webControl1.ExecuteJavascriptWithResult("function GetContents() {var arr = [];var paragraphs = document.getElementsByTagName('p');for (var i = 0; i < paragraphs.length; i++) {arr.push(paragraphs[i].innerHTML);}return arr;} alert(GetContents());")
您需要等待事件 webControl1.ShowJavascriptDialog
触发。
在视觉 Basic.NET 中,您可以:
Private Sub JSDialog(ByVal sender As Object, ByVal e As JavascriptDialogEventArgs) Handles webControl1.ShowJavascriptDialog
e.Cancel = False
e.Handled = True
MessageBox.Show(e.Message)
End Sub
在 C# 中,您可以通过创建函数来实现:
private void JSDialog(object sender, JavascriptDialogEventArgs e) {
e.Cancel = false;
e.Handled = true;
MessageBox.Show(e.Message);
}
并添加:
webControl1.ShowJavascriptDialog += OnShowJavascriptDialog;
我需要获取 'p' 元素,我使用以下代码
dynamic document = webControl1.ExecuteJavascriptWithResult("document"); var p = document.getElementsByTagName("p");
但是没用 我使用 Awesomium v1.7.5.1 和 visual studio 2010
您需要这些段落中的哪些具体数据? 在我下面发布的当前示例中,获取每个段落的 innerHTML。 javascript 可以是:
function GetContents() {
var arr = [];
var paragraphs = document.getElementsByTagName('p');
for (var i = 0; i < paragraphs.length; i++) {
arr.push(paragraphs[i].innerHTML);
}
return arr;
}
GetContents();
你可以直接执行:
JSObject paragraphs = webControl1.ExecuteJavascriptWithResult("function GetContents() {var arr = [];var paragraphs = document.getElementsByTagName('p');for (var i = 0; i < paragraphs.length; i++) {arr.push(paragraphs[i].innerHTML);}return arr;} GetContents();")
然而,就我而言,似乎我一直在为可变段落获取未定义的内容。我的解决方法是将 GetContents()
放入 alert()
函数中。
变成这样:
JSObject paragraphs = webControl1.ExecuteJavascriptWithResult("function GetContents() {var arr = [];var paragraphs = document.getElementsByTagName('p');for (var i = 0; i < paragraphs.length; i++) {arr.push(paragraphs[i].innerHTML);}return arr;} alert(GetContents());")
您需要等待事件 webControl1.ShowJavascriptDialog
触发。
在视觉 Basic.NET 中,您可以:
Private Sub JSDialog(ByVal sender As Object, ByVal e As JavascriptDialogEventArgs) Handles webControl1.ShowJavascriptDialog
e.Cancel = False
e.Handled = True
MessageBox.Show(e.Message)
End Sub
在 C# 中,您可以通过创建函数来实现:
private void JSDialog(object sender, JavascriptDialogEventArgs e) {
e.Cancel = false;
e.Handled = true;
MessageBox.Show(e.Message);
}
并添加:
webControl1.ShowJavascriptDialog += OnShowJavascriptDialog;