2015-01-19 2 views
1

Я пытаюсь перейти к aspx с помощью элемента управления WebBrowser в wpf. На странице есть javascript onload. Javascript-вызов будет работать, если я поместил элемент управления в сетку, сделав видимость управления свернутым или скрытым, но я хочу только за пределами экрана. Есть ли способ сделать это или что-то невозможное?WPF Off-Screen WebBrowser Control - Javascript на pageload не работает

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 приложение

<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) 
     { 
     } 
    } 

ответ

1

Ok я получил ответ. Если никакой компонент ui, то Javascript не будет работать. Так добавил элемент управления в форму, и это сработало!

 var newForm =new Form(); 

     var webBrowserControl = new System.Windows.Forms.WebBrowser(); 
     webBrowserControl.Navigate("http://localhost:53288/WebForm1.aspx"); 

     newForm.Controls.Add(webBrowserControl);