2013-07-09 46 views
0

我遇到了一個有趣的問題,IE9和對象標籤。對象標籤和IE9

對於客戶端而言,我最簡單的形式是在一個單獨的網站中的一個頁面的對象標籤中託管一個網站(ASP .NET Web Forms網站),原因是荒謬和令人興奮的,html看起來像以下:

<object id="so" data="https://so.com/so" scrolling="auto" frameborder="0"> 

    </object> 

在Chrome和Firefox當我點擊的對象標籤內的HTML鏈接時,瀏覽器選項卡中有一個加載圖標(按照正常的頁面事件)給用戶的反饋已發生的事件。在IE 9中,這種情況不會發生,因此用戶不知道點擊鏈接已經觸發了任何事件。

我看了對象標籤沒有成功onbeforeunload事件,例如:

<object id="so" data="https://so.com/so" scrolling="auto" frameborder="0" onBeforeOnLoad="javascript: onDocumentUnLoad();"> 

    </object> 

使用上述方法onbeforeunload函數沒有被調用。

我也嘗試通過jQuery使用ajax加載到div中,但處理上下文css和js引用和post-backs變得難以管理,並且將點擊事件添加到每個按鈕或href都會影響性能和功能。

我在想知道是否有另一種方法來給用戶反饋或簡單的解決方法。

+0

我看到你已經做了一些試驗;)所以,它不能使用iframe嗎? –

+0

無法在IFRAME中使用。仍然試圖自己解決 – heads5150

回答

0

我發現了一個可行的解決方案。

在父頁面中爲自定義事件創建處理程序。在這種情況下, 「unloadingChild」:

//using jQuery 1.4.2 
$("body").bind("unloadingChild", function(){ 
    console.log("child unloaded"); 
}); 

在孩子託管的網頁觸發通過體卸載事件自定義事件: // body元素卸載 $(窗口).unload(bodyUnload()); function bodyUnload(){//觸發父級unloadingChild事件 parent。$(「body」)。trigger(「unloadingChild」); }

我不知道這是不是最好的方法,但它似乎是一個好方法。這當然適用於這種情況。

它不解決對象卸載,但它解決了問題。

這隻適用於兩個網站same origin。否則,你會得到類似於「權限被拒絕訪問屬性」的錯誤'