我正在开发一个完全信任的 WPF浏览器应用程序(XBAP),并遇到了麻烦。客户端上的应用程序被连线以处理具有特定前缀/协议的导航请求。 (例如,“foo:// ...”)此外,应用程序根据哪个浏览器创建请求来处理这些不同。我已经尝试过Page的'NavigationService.Navigate()'方法,但由于某些奇怪的原因,这个涉及WebRequest对象,它引发NotSupportedException,说“无法识别URI前缀。”我可以创建一个WebBrowser控件并使用此前缀成功导航IT,但应用程序将其识别为不同的浏览器并做出不同的反应。如果我使用的是Silverlight ,我将直接设置浏览器的'window.location',它可以很好地工作。但是,当然,这似乎只在Silverlight框架中可用。
所以底线,我需要做的是触发托管XBAP的浏览器导航到具有此特殊前缀的URI。
呼。这就是我想的。感谢。
更新:.Net Framework 4.0将允许直接访问浏览器的DOM,这将解决此问题,但我仍然在寻找在.Net 3.x中实现此目的的方法。
答案 0 :(得分:3)
您可以尝试使用BrowserInteropHelper.ClientSite来访问DOM。查看此帖子中的样本:
http://blogs.msdn.com/changov/archive/2009/03/01/scripting-out-of-an-xbap.aspx
请注意,这只适用于Internet Explorer。