是否存在來自JavaScript事件處理程序的跨瀏覽器方式以確定該事件是否被前一個處理程序取消了? IE和Chrome等其他瀏覽器都有可以測試的event.returnValue屬性,但FireFox似乎沒有任何此類屬性。用於確定DOM事件是否被取消的跨瀏覽器方式
下面是我正在談論的場景的一個示例。你有一個表單,像這樣:
<form id="test" name="test" onsubmit="return false;" />
你掛鉤的事件,它在JavaScript中,用的addEventListener /的attachEvent(聯播ommitted爲了簡潔)。該事件需要知道該鏈中的任何事情是否返回錯誤或以其他方式取消。 IE的版本,像這樣:
function onSubmitHandler(e) {
alert("event was cancelled prior to this handler: " + e.returnValue);
}
這個工作在IE,鉻等,但當然不能在Firefox,因爲它不具備event.returnValue。我已經通過其他方式對intarwebs進行了梳理,在FireFox中確定了這一點,並且什麼都沒有提出。有沒有解決這個問題,不涉及直接設置表單的onsubmit屬性?
我意識到需要做些什麼來取消一個事件,但這不是我在這裏要做的。在這裏使用jQuery不是一種選擇,因爲我正在編寫一個需要能夠與任何其他代碼集成的庫,例如ASP.NET驗證,而不僅僅是使用jQuery的東西。 – 2009-02-05 21:22:34