我正在尝试使用wpf中的WebBrowser控件导航到aspx。该页面上有一个javascript onload。如果我将控件放在网格上,使控件的可见性折叠或隐藏,则Javascript调用将起作用,但我只想要屏幕外调用。 有没有办法做到这一点或不可能的事情?
ASPX:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function OnloadJSCall() {
window.PageMethods.Docall(onSuccess, onFailure);
}
function onSuccess(result) {
}
function onFailure(error) {
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div><asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<script language="JavaScript"> OnloadJSCall();</script>
</div>
</form>
</body>
</html>
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static string Docall()
{
using (var fs = new FileStream("C:\\AD\\Test1111.txt", FileMode.Append, FileAccess.Write))
using (var sw = new StreamWriter(fs))
{
sw.WriteLine(System.DateTime.Now);
}
return "Done";
}
}
WPF App
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
</Grid>
</Window>
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var webBrowserControl = new WebBrowser();
webBrowserControl.Navigate("http://localhost:53288/WebForm1.aspx");
webBrowserControl.Navigated += webBrowserControlOnNavigated;
}
private void webBrowserControlOnNavigated(object sender, NavigationEventArgs navigationEventArgs)
{
}
}
答案 0 :(得分:1)
好的我得到了答案。如果没有ui组件,那么Javascript将无法正常工作。所以将控件添加到表单中就可以了!!
var newForm =new Form();
var webBrowserControl = new System.Windows.Forms.WebBrowser();
webBrowserControl.Navigate("http://localhost:53288/WebForm1.aspx");
newForm.Controls.Add(webBrowserControl);