加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函

发布时间:2020-12-16 01:48:32 所属栏目:百科 来源:网络整理
导读:我正在尝试使用XBAP来获取TWAIN图像,但我甚至没有达到那么远.我似乎无法获得BrowserInteropHelper.HostScript以允许我在主页上回复 javascript. 我在iframe中运行XBAP. 我尝试了完全信任(即使这应该是一个要求). 我正在测试IE9,.NET Framework 4.0 BrowserIn
我正在尝试使用XBAP来获取TWAIN图像,但我甚至没有达到那么远.我似乎无法获得BrowserInteropHelper.HostScript以允许我在主页上回复 javascript.

>我在iframe中运行XBAP.
>我尝试了完全信任(即使这应该是一个要求).
>我正在测试IE9,.NET Framework 4.0
> BrowserInteropHelper.HostScript不为null,我可以使用普通的窗口方法,如.Close().

我的代码看起来像这样:

index.html的:

<p id="someP">My cat's breath smells like cat food.</p>

<script type="text/javascript">
    function WorkDamnit() {
        $('#someP').hide();
    }
</script>

<iframe src="@Url.Content("~/XBAPs/WPFBrowserApplication1.xbap")" style="border: none;" width="500" height="500" />

Page1.xaml.cs:

private void Button_Click(object sender,RoutedEventArgs e)
{
    if (BrowserInteropHelper.HostScript == null)
        throw new ApplicationException("hostscript is null");
    else
        BrowserInteropHelper.HostScript.WorkDamnit();
}

我明白了:

System.MissingMethodException: Method '[object Window].WorkDamnit' not found.

新信息:

此方案适用于网络上的其他PC,我找到了原因. IE9默认设置为“在兼容性视图中显示Intranet站点”.这会导致页面以“IE7模式”呈现,并且可以从XBAP获得javascript函数.如果我单击文档模式:(在F12开发人员工具控制台下)并切换到IE9模式,则它不再起作用(如上所述).在我自己的电脑上它默认使用IE9模式(应该这样),除非我手动切换到IE7模式,否则它不起作用.

解决方法

在IE9中,您可以使用窗口方法,因此您可以尝试使用setTimeout

BrowserInteropHelper.HostScript.setTimeout("WorkDamnit()",0);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读