我正在研究一个inhertied应用程序并在JavaScript中的这行代码中获取错误(Uncaught typeerror:Object不是函数)
var lobj_css = new Object(document.styleSheets("cssName"));
它在IE8中可以正常工作,没有任何错误,但IE8以上的任何内容都没有,在Google Chrome中也没有。
答案 0 :(得分:2)
进行一些故障排除非常简单。
在独立的网页,JS Bin或小提琴中单独尝试违规行, like this
结果相同。现在尝试单独分解,并注释掉Object()
构造函数,以便查看document.styleSheets
调用是否导致您的问题。
var stylesheets = document.styleSheets("cssName");
// var lobj_css = new Object(stylesheets);
结果:
TypeError: object is not a function
看起来document.styleSheets("cssName")
导致问题。让我们点击文档:https://developer.mozilla.org/en-US/docs/Web/API/document.styleSheets
Document.styleSheets只读属性为显式链接到文档中或嵌入文档中的样式表返回StyleSheet对象的StyleSheetList。
该页面上的示例:
var styleSheetList = document.styleSheets;
...肯定看起来不像你的例子中的代码。
在我看来遗留代码使用的是对document.styleSheets
的非标准调用,该调用是作为函数而不是readonly属性实现的。如果你想保持代码原样,你将不得不填充它,但我建议将其修复为标准。也许你可以迭代样式表列表,直到找到匹配cssName
的那个。