【发布时间】:2012-01-27 03:53:26
【问题描述】:
我有一个复杂的 Silverlight 应用程序,它非常广泛地使用 HTML 桥接功能(双向)。当托管页面与 XAP 源来自同一域时,应用程序运行良好。不幸的是,当托管页面位于不同的域时,我无法使用 HTML 桥接功能。
现在,我知道了正常运行所需的各种技巧,即此处记录的所有内容:http://msdn.microsoft.com/en-us/library/cc645023(VS.95).aspx。我什至把我自己的简化跨域复制放在一起,希望能突出问题,但不幸的是,我的“复制”有效,即 JS->SL 和 SL->JS 功能都可以正常工作,即使 XAP 托管在不同的域中。
这是我迄今为止尝试缩小问题范围的方法:
关于我的生产解决方案(我遇到问题的地方):
- 确认
<object>标签中的“EnableHtmlAccess”设置为true。 - 确认 AppManifest.xml 文件中的“ExternalCallersFromCrossDomain”设置为“ScriptableOnly”。
关于我的重现解决方案(我无法解决问题):
- 添加了具有多个已注册脚本对象的多个库。
- 向注册对象添加了事件。
在两个方面:
- 尝试使用静态
<object>标记和动态创建的<object>标记(通过 Silverlight.js)。 - 在为 onSourceDownloadProgressChanged、onSourceDownloadComplete、onError 和 onLoad 指定和不指定处理程序的情况下进行了尝试。
- 在有和没有启动画面的情况下都试过了。
我有点想不通了。有人对其他故障排除步骤有任何建议吗?
【问题讨论】: