在我的 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 异常('Unspecified error.');行。
这很可能与安全相关,但我不知道如何解决这个问题..
我怎样才能让它工作?
最佳答案
对于面临相同或相似问题的任何人:
显然这是一个跨域脚本安全问题。 如果 silverlight 应用程序的域和页面(您正在导航到)不同,浏览器控件将不会执行此操作。 (!甚至 127.0.0.1 和 localhost 都被评估为“不同的”域)
我最终使用相对 URI 浏览到该页面,这解决了我的问题。
格茨
关于javascript - Silverlight window.external.notify() 安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3884087/