我在 HTML 页面中有一个 Silverlight 应用程序。SL 插件托管在“对象”HTML 标记中。当用户关闭网页时,我想在我的 Silverlight 应用程序中调用一个函数。代码是这样的:
(简化的)HTML 代码:
<div id="silverlightControlHost">
<object id="MyApp" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/MyApp.xap" />
...
</object><iframe id="_sl_historyFrame"></iframe></div>
Javascript代码:
<script type="text/javascript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
var control = document.getElementById("MyApp");
var message = control.content.BrowserIntegration.MyAppFunction();
if (message)
{
return message;
}
}
</script>
它曾经可以工作,但现在不再工作了,至少在 Internet Explorer 8 中是如此。HTML 对象 (control.content) 的内容属性未定义。奇怪的。该物业最近有变化吗?我很确定它在 2 个月前有效,并且在此之前很长一段时间都运作良好。该网站位于我的受信任站点中,并且我在 IE 中没有找到从那时起我更改的设置(可能有一两个,但扫描列表,我没有找到任何东西)。
当我使用 HTML 对象的“onLoad”事件进行测试时,内容已经未定义。
我不知道异常是它以前起作用还是现在不起作用。但如果有人能告诉我如何让它现在工作,它会让我很开心。