我需要括号中的数字,在本例中为“14”,以便我可以将其发送到页面上的JavaScript函数进行提交,或者有没有办法“点击”按钮“当前周”?
<form id="timetablesForm" action="timetablesController.jsp" method="post">
<p>
<input type="button" name="Current week" value="Current week" onclick="javascript:void+displayTimetable('14')" />
<input type="button" name="Next week" value="Next week" onclick="javascript:void+displayTimetable('15')" />
<input type="button" name="Current semester" value="Semester 1" onclick="javascript:void displayTimetable('7;8;9;10;11;12;13;14;15;16;17;21')" />
</p>
function displayTimetable(selectdweeks)
我在Windows Phone中工作,因此WebBrowser.Document
不可用。我使用下面的脚本以不同的形式设置值:
webBrowser1.InvokeScript("eval", "document.getElementById('loginform1').user.value = 'username';");
如何获取 HTML页面中的值?我可以使用InvokeScript
调用哪些其他功能?如果你能指出我的功能列表,请欣赏它。
答案 0 :(得分:2)
使用此
webBrowser1.SaveToString()
然后解析HTML以获取我想要的位
答案 1 :(得分:1)
以下代码从您的第一个输入“当前周”中提取“14”:
private void button1_Click(object sender, RoutedEventArgs e)
{
// first define a new function which returns the content of "onclick" as string
webBrowser1.InvokeScript("eval", "this.newfunc_getmyvalue = function() { return document.getElementById('Current week').attributes.getNamedItem('onclick').value; }");
// now invoke the function and save the result (which will be "javascript:void+displayTimetable('14')")
string onclickstring = (string)webBrowser1.InvokeScript("newfunc_getmyvalue");
// now split the string at the single quotes (you might have to adapt this parsing logic to whatever string you expect; this is just a simple approach)
string[] substrings = Regex.Split(onclickstring, "'");
// this shows a messagebox saying "14"
MessageBox.Show(substrings[1]);
}
一点背景:
最初我认为返回一个值应该像以下一样简单:
// ATTENTION: THIS DOESN'T WORK
webBrowser1.InvokeScript("eval", "return 'hello';");
但是这总是抛出一个SystemException
(“发生了一个未知错误。错误:80020101。”)这就是为什么上面的代码首先定义一个返回所需值的JavaScript函数的原因。然后我们调用此函数并成功返回结果。
答案 2 :(得分:0)
你有没有试过这样做,获得价值?
Object val = webBrowser1.InvokeScript("eval", "document.getElementById('loginform1').user.value;");