Silverlight window.external.notify() 安全问题?
在我的 silverlight 应用程序中,我使用 webBrowser 控件。
我在我正在导航到的页面上调用以下 javascript 函数。
function notify() {
window.external.notify("Close");
}
奇怪的事实是,它仅在我使用
this.Browser.Source = new Uri("http://localhost/TestOutOfBrowser.Web/HTMLPage1.htm");
真实服务器名称导航到
this.Browser.Source = new Uri("http://testServerName/TestOutOfBrowser.Web/HTMLPage1.htm");
该页面时才有效:执行 window.external.notify( 时,出现 javascript 异常(“未指定错误”。) “关闭”);线。
这很可能与安全相关,但我不知道如何解决这个问题。
我怎样才能让它工作?
in my silverlight application I am using the webBrowser control.
I call following javascript function on the page i'm navigating to.
function notify() {
window.external.notify("Close");
}
The weird fact is that it only works when I am navigating to the page by using:
this.Browser.Source = new Uri("http://localhost/TestOutOfBrowser.Web/HTMLPage1.htm");
When I navigate to it using the real server name:
this.Browser.Source = new Uri("http://testServerName/TestOutOfBrowser.Web/HTMLPage1.htm");
I get an javascript exception ('Unspecified error.') when executing the window.external.notify("Close"); line.
This is most probably security related but I don't have a clue how to solve this problem..
How can I get this to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于面临相同或类似问题的任何人:
显然,这是一个跨域脚本安全问题。
如果 silverlight 应用程序的域和页面(您正在导航到的)不同,浏览器控件将不会执行此操作。 (!甚至 127.0.0.1 和 localhost 都被评估为“不同”域)
我最终使用相对 URI 来浏览页面,这解决了我的问题。
格茨
For anyone facing the same or similar problem:
Appearantly this is a cross-domain scripting security issue.
The browser control will not execute this if the domain of the silverlight application and the page(you are navigating to) are different. (! even 127.0.0.1 and localhost are evaluated as 'different' domains )
I ended up using a Relative URI to browse to the page and this solved my problem.
Grtz