2

在我的 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("Close"); 时出现 javascript 异常('未指定的错误。');线。

这很可能与安全有关,但我不知道如何解决这个问题..

我怎样才能让它工作?

4

1 回答 1

2

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

显然这是一个跨域脚本安全问题。如果 silverlight 应用程序的域和页面(您要导航到的)不同,浏览器控件将不会执行此操作。(!甚至 127.0.0.1 和 localhost 也被评估为“不同”域)

我最终使用相对 URI 浏览到页面,这解决了我的问题。

格茨

于 2010-10-14T09:58:32.243 回答