HTML ページに Silverlight アプリケーションがあります。SL プラグインは、「オブジェクト」HTML タグでホストされます。ユーザーが Web ページを閉じたときに、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) の content プロパティは定義されていません。変。このプロパティに最近変更がありましたか? 私はそれが 2 か月前に機能したこと、そしてそれ以前に長い間うまく機能していたことを確信しています。Web サイトは信頼済みサイトにあり、それ以降変更した IE の設定は見つかりませんでした (1 つまたは 2 つある可能性がありますが、リストをスキャンしても何も見つかりませんでした)。
HTMLオブジェクトの「onLoad」イベントでテストすると、内容が未定義になっています。
その異常が以前は機能していたという事実なのか、それとも現在機能していないという事実なのかはわかりません。しかし、誰かが今それを機能させる方法を教えてくれるなら、それは私の一日を楽にしてくれます.