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

c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函数,第1张

概述我正在尝试使用XBAP来获取TWAIN图像,但我甚至没有达到那么远.我似乎无法获得BrowserInteropHelper.HostScript以允许我在主页上回复 javascript. >我在iframe中运行XBAP. >我尝试了完全信任(即使这应该是一个要求). >我正在测试IE9,.NET Framework 4.0 > BrowserInteropHelper.HostScript不为 我正在尝试使用XBAP来获取TWAIN图像,但我甚至没有达到那么远.我似乎无法获得browserInteropHelper.HostScript以允许我在主页上回复 @L_404_0@.

>我在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")"  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);
总结

以上是内存溢出为你收集整理的c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函数全部内容,希望文章能够帮你解决c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存