【问题标题】:WPF Frame controlWPF框架控制
【发布时间】:2009-03-06 07:17:31
【问题描述】:

我有一个包含 Frame 控件的 WPF 应用程序。框架控件显示 html 内容。 html 页面包含一个 JavaScript 函数,我想在 Frame 和 WPF 代码中加载 html 页面后调用该函数?有没有一种方法可以调用在 WPF 框架控件和 WPF 代码中加载的 html 页面的 JavaScript 方法?

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案1】:

    您不能与框架内的 HTML 进行交互。为了与 HTML 交互,您可以使用 .NET 3.5 SP1 的 WPF 的 WebBrowser 控件。

    您可以在此视频中看到 WebBrowser 控件的运行情况:

    http://channel9.msdn.com/posts/AdamKinney/WPF-35-SP1-App-Model-with-Jennifer-Lee/

    【讨论】:

      【解决方案2】:

      无法访问 DOM,所以恐怕不行。如果您确实需要它,那么您最好的选择可能是从 System.Windows.Forms 嵌入 WinForms WebBrowser 控件。

      <Page
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:f="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
        xmlns:fi="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration.dll" >
        <Grid>  
          <fi:WindowsFormsHost>
            <f:WebBrowser x:Name="BrowserControl" Url="http://www.myurl.com/"/>
          </fi:WindowsFormsHost>
        </Grid>
      </Page>
      

      【讨论】:

        【解决方案3】:

        在您的 HTML 页面中使用 &lt;body onload="javascript:alert('hi its loaded. do what you want here');"&gt;,例如 myhtmlpage.html

        然后在您的 WPF 代码中使用框架 XAML 控件 (&lt;Frame Name="myWpfFrame" Source="http://myurl/myhtmlpage.html"&gt;)。


        假设您希望调用 javascript仅一次并且 仅在 HTML 之后,此解决方案将起作用页面已加载。

        如果你想多次调用js,你可以在需要的时候从代码中设置框架控件的源属性...如..myWpfFrame.Source = myWpfFrame.Source;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-20
          • 1970-01-01
          • 2011-05-05
          • 1970-01-01
          • 2012-04-22
          • 2014-06-23
          • 2012-05-02
          • 2013-09-27
          相关资源
          最近更新 更多