/ / Como corrigir um objeto typeerror não capturado não é uma função [fechada] - javascript

Como corrigir, objeto typeerror não detectado não é uma função [fechada] - javascript

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"));

Typeerror não capturado: o objeto não é uma função

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.