In questo periodo stiamo vedendo come effettuare operazioni CRUD su liste SharePoint utilizzando KnockoutJS e, quindi, JavaScript come linguaggio di scripting.
Nell'ultimo post di questa mini-serie, era la volta della cancellazione. Se andate a riguardare bene il codice, il metodo cardine di tutto quanto era il metodo "deleteContact". Ecco, durante lo sviluppo di quell'esempio, mi sono accorto di un problema con le vecchie versioni di IE (6, 7 e 8) utilizzando una funzione chiamata "delete".
Scrivendo la funzione del mio view model in questo modo:
self.delete = function(data) {
//... };
avevo un errore a run-time di questo tipo:
Come spesso accade, purtroppo, il testo dell'errore non centra niente con l'effettiva causa. Il parser di IE ci dice che manca un'identificatore da qualche parte, ma in realtà il browser va in errore perchè all'interno del nostro codice JavaScript abbiamo utilizzato una parola chiave che è riservata al browser stesso.
Per risolvere il problema, basta semplicemente evitare di utilizzare queste parole chiave come nomi per le vostre funzioni.
Attualmente non cè una risorsa su MSDN con l'elenco completo di queste parole riservate per le vecchie versioni di IE. Cè solo quello di IE 10 (http://msdn.microsoft.com/en-us/library/ie/0779sbks(v=vs.94).aspx), meglio di niente.
Come vi dicevo comunque, questo problema è SOLO per le versioni 6, 7 e 8 di Interner Explorer.