WPF屏幕外WebBrowser控件 - 页面加载时Javascript无法正常工作

时间:2015-01-19 18:49:14

标签: javascript wpf c#-4.0 webbrowser-control

我正在尝试使用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)
        {
        }
    }

1 个答案:

答案 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);