2011-01-13 38 views
7

我有一個表單,並且我必須注意用戶在退出頁面時有alert(),而表單中的數據尚未發送。跨瀏覽器Onunload和Onbeforeunload? (特別是歌劇11)

我讀過歌劇有很多這方面的問題。那就是Opera 11,因爲我只需要考慮最後一個版本。

同樣,警報應該在刷新,關閉標籤或關閉整個瀏覽器時顯示。 將事件直接設置到<form>元素上將是很好的,該元素將在任何導致破壞此元素的任何元素上啓動。

+0

[歌劇onbeforeunload]的可能重複(http://stackoverflow.com/questions/390260/onbeforeunload-in-opera) – Bergi 2013-03-26 22:53:08

回答

19

Opera目前還不支持onbeforeunload。 Opera的onunload支持不完整 - 例如,關閉選項卡或關閉Opera時不會觸發。據我所知,雖然你可以使用onunload來顯示警告,如果用戶點擊鏈接從未保存的表單導航離開頁面,當unload事件觸發時,你無法阻止導航的發生。

我在這裏要做的是聽取onbeforeunload事件,使其在其他瀏覽器中工作,並等待Opera趕上。無論是在Opera 12還是13或15中,我都不知道,但是當onbeforeunload實現時,它將像其他瀏覽器一樣工作。

+0

也是移動Safari瀏覽器不支持onbeforeunload,所以如果你有任何的移動用戶,那麼你可能需要找到另一種解決方案。 – robocat 2012-07-12 04:32:22

+1

現在基於Webkit引擎的Opera 15支持`onbeforeunload`! – wojo 2013-07-03 16:06:02

1

Disable Close不會幫你,因爲Opera目前不支持window.onbeforeunload。它將在未來的某個版本中得到支持。目前,Opera 11沒有實現它。

-5

JQuery框架只是一個精簡的Javascript語言,所以它完全取決於您使用的瀏覽器,這裏沒有什麼魔力。

1

自從Opera 15開始支持onbeforeunload!