Silverlight window.external.notify() 安全问题?

发布于 2024-09-26 16:56:15 字数 599 浏览 3 评论 0原文

在我的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲鸠 2024-10-03 16:56:15

对于面临相同或类似问题的任何人:

显然,这是一个跨域脚本安全问题。
如果 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文