voglio creare un foglio di stile come questo:assegnazione non valido lato sinistro con ternario se
var sheet = document.createElement('style'); sheet.type = 'text/css';
sheet.innerHTML = data.style;
Ma it seems che IE ha bisogno la propria sintassi. Per semplificare il codice this answer s', ho cercato
var sheet = document.createElement('style'); sheet.type = 'text/css';
(sheet.styleSheet ? sheet.styleSheet.cssText : sheet.innerHTML) = data.style;
Ma che getta ReferenceError: invalid assignment left-hand side
.
Poi, devo usare ...
var sheet = document.createElement('style'); sheet.type = 'text/css';
if(sheet.styleSheet) sheet.styleSheet.cssText = data.style;
else sheet.innerHTML = data.style;
... o c'è un'alternativa più semplice?
Credo che si possa andare via con l'impostazione di entrambi i valori e che il sistema di oggetti di Javascript sia abbastanza robusto da occuparsi della differenza. – abiessu
@abiessu Ma se 'sheet.styleSheet' è' indefinito', quindi 'sheet.styleSheet.cssText = sheet.innerHTML = data.style' genera' TypeError: sheet.styleSheet è undefined'. Quindi, dovrei anche controllare se dovrei creare l'oggetto 'sheet.styleSheet' – Oriol
No, voglio dire usando due linee di assegnazione separate. È probabile che l'errore di tipo venga generato perché 'sheet.stylesheet' non esiste allo scopo di fornire un valore accessibile a' sheet.styleSheet.cssText' nel tuo esempio. – abiessu