CustomEvent

翻譯不完整。請協助 翻譯此英文文件

CustomEvent interface 是應用程式為了任意目的所初始化的事件。

建構式

CustomEvent()
建立一個 CustomEvent。

屬性

CustomEvent.detail Read only
初始化事件時傳送的任意資料。

此介面繼承了其父介面 Event 的屬性:

Event.bubbles Read only
布林值,表示事件是否會向上冒泡傳遞。
Event.cancelBubble
非標準屬性。布林值,表示事件是否會繼續向上冒泡傳遞,可被 stopPropagation() 方法取代。
Event.cancelable Read only
布林值,表示事件是否能被取消。
Event.currentTarget Read only
指向目前處理事件之監聽器所屬的 DOM 物件。
Event.defaultPrevented Read only
布林值,表示事件的預設行為是否被 preventDefault() 方法所取消。
Event.eventPhase Read only
表示事件目前的傳遞階段。
Event.explicitOriginalTarget Read only
事件的明確原定目標(Mozilla 專屬)。
Event.originalTarget Read only
事件重新導向前的原定目標(Mozilla 專屬)。
Event.returnValue
非標準屬性。用以替代 preventDefault() 方法與 defaultPrevented 屬性(舊版 Internet Explorer 專屬)。
Event.srcElement
非標準屬性。為 target 屬性的別名(舊版 Internet Explorer 專屬)。
Event.target Read only
指向最初觸發事件的 DOM 物件。
Event.timeStamp Read only
事件發生(事件物件建立)至今的時間。
Event.type Read only
事件類型(不區分大小寫)。
Event.isTrusted Read only
表示事件物件是否為瀏覽器建立(比如在用戶點擊之後),或由程式碼所建立(使用建立事件的方法,如 initEvent())。

方法

CustomEvent.initCustomEvent()

初始化一 CustomEvent object。若該事件已經被觸發,則不會進行任何動作。

此介面繼承了其父介面 Event 的方法:

Event.initEvent()
初始化已經建立的事件。若該事件已經被處理過,這方法就不會執行任何東西。
Event.preventBubble() 已過時 Gecko 24
已淘汰方法。阻止事件繼續冒泡傳遞。請改用 stopPropagation() 方法。
Event.preventCapture() 已過時 Gecko 24
已淘汰方法。請改用 stopPropagation() 方法。
Event.preventDefault()
取消該事件(如果該事件的 cancelable 屬性為 true)。
Event.stopImmediatePropagation()
一旦事件物件呼叫此方法,目前元素中尚未執行的已註冊之相同事件類型監聽器將不會被呼叫,而事件也不會繼續捕捉或冒泡傳遞。
Event.stopPropagation()
阻止事件物件繼續捕捉或冒泡傳遞。
Event.getPreventDefault()
非標準方法。回傳 defaultPrevented 屬性值。請直接改用 defaultPrevented 屬性。

規格

Specification Status Comment
DOM
The definition of 'CustomEvent' in that specification.
Living Standard 原始定義

瀏覽器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Yes) 6 9 11 5.1 (533.3)
CustomEvent() constructor 15 11 No support 11.60 Nightly build (535.2)
Feature Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support ? ? ? ? ?

Firing from privileged code to non-privileged code

當要從 privileged code (像是插件)到非 privileged code (例如網頁)執行 CustomEvent ,你必須要考慮這之間的安全性。Firefox 和其他 Gecko 應用會對此有所限制。雖然這可以自動防止安全漏洞發生,但也可能導致您的程式碼沒辦法正常執行。

When creating a CustomEvent object, you must create the object from the same window as you're going to fire against. The detail attribute of your CustomEvent will be subject to the same restrictions. String and Array values will be readable by the content without restrictions, but custom Objects will not. If using a custom Object, you will need to define the attributes of that object that are readable from the content script using Components.utils.cloneInto().

// doc is a reference to the content document
function dispatchCustomEvent(doc) {
  var eventDetail = Components.utils.cloneInto({foo: 'bar'}, doc.defaultView);
  var myEvent = doc.defaultView.CustomEvent("mytype", eventDetail);
  doc.dispatchEvent(myEvent);
}

Note that exposing a function will allow the content script to run it with chrome privileges, which can open a security vulnerability.

參見

文件標籤與貢獻者

標籤: 
 此頁面的貢獻者: jackblackevo, Shiyou
 最近更新: jackblackevo,