我已经做了很多阅读,但我不明白为什么这不起作用。我正在使用带有当前更新的 VS2010。我想将网页加载到 C# Web 浏览器控件中(此应用程序是 Windows 窗体应用程序):
this.webBrowser1.Navigate("https://mydomain/L1/L2/L3/L4/webpage.asp");
this.webBrowser1.PerformLayout();
据我了解,要从 C# 调用 Javascript 函数,可以使用:
this.webBrowser1.Document.InvokeScript("passwordReset");
或者如果有参数要传递:
object[] parameters = new object[3];
parameters[0] = “1”;
parameters[0] = false;
parameters[0] = “3”;
webBrowser1.Document.InvokeScript("passwordReset", parameters);
我的网页代码如下。我已经展示了我尝试过的两种方法。如果我将 Javascript 插入页面,一个似乎可行。
由于我的限制,我不想使用这种方法。我需要能够调用 *.js 文件,如下所示:
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>My Test Page...</title>
<script type="text/javascript" language="javaScript">
function passwordReset()
{
alert("You're about to change your password!!");
}
</script>
<script type="text/javascript" src="/L1/L2/Password_Reset.js"></script>
</head>
请注意,我没有同时在我的页面中包含两个 Javascript。我在这个例子中只包括了两者。
有人可以解释为什么这个方法在调用“Password_Reset.js”文件中的函数时不能按预期工作吗?
我尝试设置完全权限:[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
并且还使这个应用程序 Com 可见:[System.Runtime.InteropServices.ComVisibleAttribute(true)]
编辑:我想要实现的是能够在 webBrowser1.Navigate("URL"); 之后运行 Javascripts。当它们被写入页面代码时,如下所示:
<script type="text/javascript" src="/L1/L2/Password_Reset.js"></script>
编辑:在重新阅读我的问题时,我想知道这个问题是否是文件夹级别的问题并且脚本没有加载?有人可以就此提出建议吗?