直接调用JavaScript
webBrowser1.Document.InvokeScript("FunctionName");
调用带有参数的JavaScript
webBrowser1.Document.InvokeScript("FunctionName",new object[]{obj1});
向webBrowser1中添加新的javascript,将javascript放在txt中,代码容易写
TXT内容:
function SubmitUser()
{
document.Login.USER.value = 'USER';
document.Login.PASSWORD.value = 'PASSWORD';
document.Login.target.value = 'https://www.myprs.com';
document.Login.submit();
}
调用代码
HtmlDocument document = webBrowser1.Document;
HtmlElement htmlElement = document.CreateElement("Script");
htmlElement.SetAttribute("Language", "JavaScript");
FileStream fs = new FileStream(strFile, FileMode.Open);
StreamReader sr = new StreamReader(fs);
string strjs = sr.ReadToEnd();
htmlElement.SetAttribute("text", strjs);
document.Body.AppendChild(htmlElement);
object ss = document.InvokeScript(FunctionName);
sr.Close();
fs.Close();
return ss;
有复杂参数的,可以新建Function调用注意FunctionName大小写问题
<script language="javascript">
var fun = function()
{
.......
}
onLoadFunctionStack(window, fun);
</script>
<script language="javascript">
function CALLFUN() {
var fun = function()
{
}
onLoadFunctionStack(window, fun);
}
</script>
将复杂参数在Function中利用Javascript代码直接赋值
<form name="QueryForm" method="post" action="/myprs/internal/myprsQuery.do;jsessionid=4CB44026578AC5443249606A945259D5.g1u0117c"
οnsubmit="return validateForm(this) && onSubmitBasket(this) && displayPnLimitWarningNoParams();">
调用onsubmit中的这段代码 (this代表这个form)可以改写成
function reValue()
{
var frms=document.forms["QueryForm"];
return validateForm(frms) && onSubmitBasket(frms) && displayPnLimitWarningNoParams();
}
Javascript中document很有用