我在HTML頁面中有一個Silverlight應用程序。 SL插件託管在「對象」HTML標記中。當用戶關閉網頁時,我想在我的Silverlight應用程序中調用一個函數。該代碼是這樣的:從IE中調用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個月前已經運行,並且在此之前它已經運行良好。該網站是在我的信任網站,我還沒有發現在IE瀏覽器中的設置,自那時起我已經改變(可能有一兩個,但掃描列表,我還沒有發現任何東西)。
當我使用HTML對象的「onLoad」事件進行測試時,內容已經是未定義的。
我不知道這個異常是事實,它以前工作或現在不工作。但如果有人能告訴我如何使它現在工作,它會讓我的一天。
看看這個:http://msdn.microsoft.com/en-us/library/cc221414%28v=vs.95%29.aspx。 –
@Lucas:我試過了(爲客戶端腳本訪問註冊託管代碼)。這就是我測試HTML對象的onLoad事件的方法。在這種情況下,內容(或內容)屬性也是未定義的。對你起作用嗎? 糟糕:我剛剛看到該頁末尾的註釋。我會檢查。 – ConnorsFan
你的意思是跨域調用問題?讓我們知道這是否有幫助。 –