在Silverlight 4中,调用System.Windows.Browser.HtmlPage.Window.Invoke("openWindow")和调用System.Windows.Browser.HtmlPage.PopupWindow(someUri, "_blank", null)有什么区别?其中,"openWindow"是一个调用window.open的js函数。
区别在于调用 window.open 不是一项正式的标准。Silverlight API 中的 PopupWindow 方法旨在抽象出不同浏览器实现 open 的差异。例如,用于打开选项的属性名称可能因浏览器而异。使用 PopupWindow,您的代码可以使用强类型的 HtmlPopupWindowOptions 类以一致的方式定义这些选项。Silverlight 运行时会以适合主机浏览器的方式发出请求,执行所需的操作。