2015-03-04 7 views
16

Ho bisogno di creare a livello di codice un'istanza ClipboardEvent in Chrome.È possibile creare un'istanza di ClipboardEvent in Chrome?

Ma quando ho eseguito il costruttore:

new ClipboardEvent("paste", {dataType: "text/plain", data: "some data"}) 

Si getta il seguente errore:

Uncaught TypeError: Illegal constructor 

Il costruttore funziona come previsto in Firefox.

Controllato MDN e W3C spec e non menzionano nulla sul fatto che sia illegale creare istanze di ClipboardEvent.

È possibile creare un'istanza di ClipboardEvent in Chrome in qualsiasi altro modo? Preferisco non deridere un ClipboardEvent personalizzato quando ne esiste uno.

+1

Attualmente utilizzo una soluzione alternativa in cui creo un CustomEvent e aggiungo la funzione evt.clipboardData.getData(). –

+0

In che modo è stato possibile definire ClipboardEvent in primo luogo? –

+0

È nell'ultima versione di Chrome e Firefox su Mac OS X, visto che ora non è su Windows. Suppongo che sia presto per usarlo affatto. –

risposta

13

Sfortunatamente, non lo è. Questo è da http://caniuse.com/#feat=clipboard

Partial support in IE refers using a non-standard method of interacting with the clipboard. For other browsers it refers to not supporting the ClipboardEvent constructor.

enter image description here

Purtroppo, l'unico browser che supporta adeguatamente il Clipboard API è Firefox (dal 22). Tutti gli altri browser (se supporta API Clipboard affatto), non supporteranno il costruttore ClipbordEvent.

+2

Quando guardo lì oggi, Firefox ha un supporto parziale e Chrome suppone che abbia pieno supporto da 42 in poi. Immagino sia una festa mobile. Ma sto usando 42 e non riesco ancora a costruire un evento negli appunti! – harmic

+0

Anche ottenendo anche questo che è strano, qualcuno sa se questo è qualcosa che richiede la richiesta di autorizzazione? –

+0

Capito, 'Chrome 42+ e Opera 29+ supportano la lettura/scrittura degli appunti solo quando parte di un'azione dell'utente (clic, keydown, ecc.)' Secondo caniuse –