2012-05-23 140 views
2

因此,我們有一個內部的web應用程序,它在IE6的日子裏被寫回來,我們試圖進入跨瀏覽器的狀態,包括移動設備。我們使用ASP.NET,並且代碼隱藏是用VB.NET編寫的。跨瀏覽器showModalDialog替換

不幸的是,該應用程序使用showModalDialog函數,該函數僅在Internet Explorer中有效(並且在Firefox中排序)。它還利用了這些彈出窗口中的window.returnValue,所以它期望的是,當調用PopUpWindow()時,javascript會阻止該語句並停止執行。大多數調用的形式是「var a = PopUpWindow(..)」。然後當彈出窗口關閉時,它會恢復並設置爲returnValue,然後利用它。

它看起來像這些日子JavaScript並沒有真的阻止函數調用,這使得找到一個簡單的跨瀏覽器更換令人沮喪的過程。我們有一個包含在打開彈出窗口的功能的每個頁面上的JavaScript文件。理想情況下,我們希望在此文件中替換此函數,並使其在整個應用程序中工作,而不必在每個存在彈出窗口的頁面上進行更改。

有沒有什麼可以幫助解決這個問題,或者是否有替代這些類型的對話彈出窗口的標準方法?我們正在考慮用jQuery對話框替換它們,但由於我們需要使用回調函數來獲取returnValue,所以它不能用作插入式替換。我感覺有沒有簡單的方法來做到這一點(因爲我們的代碼依賴於阻止JavaScript),我們將不得不咬緊牙關,並使用彈出窗口對每個頁面進行更改。

回答