Estou trabalhando em um aplicativo herdado e recebendo erro (Typeerror não capturado: objeto não é uma função) nesta linha de código em javascript
var lobj_css = new Object(document.styleSheets("cssName"));
Ele funciona no IE8 e sem erros, mas nada acima do IE8 e nem no Google chrome. Alguma ideia?
obrigado
Respostas:
2 para resposta № 1É simples o suficiente para solucionar alguns problemas.
Experimente a linha ofensiva, por si só, em uma página da web independente, JS Bin ou violino, como isso
Mesmo resultado. Agora tente dividir a tarefa separadamente e comentar o Object()
construtor, para que você possa ver se o document.styleSheets
chamada está causando seu problema.
var stylesheets = document.styleSheets("cssName");
// var lobj_css = new Object(stylesheets);
Resultado:
TypeError: object is not a function
Parece que há algo sobre o document.styleSheets("cssName")
isso está causando um problema. Vamos aos documentos: https://developer.mozilla.org/en-US/docs/Web/API/document.styleSheets
A propriedade somente leitura Document.styleSheets retorna um objeto StyleSheetList of StyleSheet para folhas de estilo explicitamente vinculadas ou incorporadas a um documento.
E o exemplo nessa página:
var styleSheetList = document.styleSheets;
... com certeza não se parece com o código do seu exemplo.
Parece-me que o código legado está usando uma chamada não padrão para document.styleSheets
que é implementado como uma função em vez de umpropriedade somente leitura. Você precisará calçá-lo se quiser manter o código como está, mas eu recomendo corrigi-lo para que seja padrão. Talvez você possa percorrer a lista de folhas de estilo até encontrar a que corresponde cssName
.