2012-09-21 12 views
7

Qualcun altro ha riscontrato errori/problemi intermittenti nel nuovo motore javascript di iOS 6 quando accede alle proprietà sugli oggetti in cui la proprietà è stata definita utilizzando la più recente sintassi Object.defineProperty?iOS 6 javascript intermittenti con object.defineProperty

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty

che sto vedendo occasioni in cui il javascript mancherà affermando indefinito non è una funzione sui metodi di oggetti accessied come immobili in oggetti definiti in questo modo.

+0

prova? esempio jsfiddle sarebbe fantastico. – c69

+2

C'è una squadra qui dove lavoro che sta lavorando su un'app HTML5/Javascript che ha come target Safari su un iPad. Hanno menzionato un problema simile dal suono dopo aver aggiornato un iPad di test a iOS6. Se riesco a rintracciare una risposta, la aggiungerò qui. In bocca al lupo. –

+1

@Eric Sono riuscito a "risolvere" il problema rimuovendo tutte le istanze della notazione dell'oggetto JavaScript; Object.create, .defineProperty e .seal. Ancora nessuna idea sulla causa principale, ed è particolarmente difficile rintracciare dal momento che posso riprodurre l'errore nella mia app il 100% delle volte, e poi quando mi connetto a un MacBook per usare il nuovo Web Inspector, il problema si ferma. Non ero nemmeno in grado di riprodurre nulla in isolamento (ad es. JsFiddle), aggiungendo ulteriore frustrazione. –

risposta

0

Secondo Kangax's ES5 table, "In alcune versioni di WebKit Object.defineProperty non funziona con oggetti DOM." Presumo che questo sia ciò a cui potresti riferirti. È la nota n. 2 in fondo alla pagina. Spero che questo ti aiuti!

0

Nel caso in cui non si è già risolto questo, assicurarsi che il suddetto immobile è enumerabile (ed eventualmente configurabile) ...

Object.defineProperty(obj, "key", { 
    enumerable: true, 
    configurable: true 
});