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. 我的代码看起来像这样: 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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |