我需要得到' p'我和元素使用以下代码
dynamic document = webControl1.ExecuteJavascriptWithResult(" document"); var p = document.getElementsByTagName(" p");
但它不起作用 我在Visual Studio 2010中使用了Awesomium v1.7.5.1
答案 0 :(得分:1)
您需要从这些段落中获得哪些具体数据? 在我下面发布的当前示例中获取每个段落的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
解雇。
在Visual 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;