>我在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中,您可以使用窗口方法,因此您可以尝试使用setTimeoutbrowserInteropHelper.HostScript.setTimeout("Workdamnit()",0);总结
以上是内存溢出为你收集整理的c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函数全部内容,希望文章能够帮你解决c# – XBAP中BrowserInteropHelper.HostScript不可用的自定义函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)