admin管理员组文章数量:1435856
I'm using CSS multi-column layout (css3) which of course works fine in Chrome, FF and Safari. But many still use IE9 and we have a requirement to support it.
For IE support I include csscolumns
polyfill js from this site.
When this polyfill loads in IE9 I get this error message in the console:
'unable to get value of the property 'indexof' object is null or undefined'
And the debugger highlights this code as the problem source:
function loadCssCache(s,callback){if(s.href.indexOf(location.host)==-1||s.href.indexOf(location.host)>50){return false}
And the code that calls loadCssCache
is:
for (var i = 0; i < document.styleSheets.length; i++) {
loadCssCache(document.styleSheets[i], "parseStylesheets")
}
s.href.indexOf
is where it fails. Has anyone else run into this problem? Or may know what the problem can be?
I'm using CSS multi-column layout (css3) which of course works fine in Chrome, FF and Safari. But many still use IE9 and we have a requirement to support it.
For IE support I include csscolumns
polyfill js from this site.
When this polyfill loads in IE9 I get this error message in the console:
'unable to get value of the property 'indexof' object is null or undefined'
And the debugger highlights this code as the problem source:
function loadCssCache(s,callback){if(s.href.indexOf(location.host)==-1||s.href.indexOf(location.host)>50){return false}
And the code that calls loadCssCache
is:
for (var i = 0; i < document.styleSheets.length; i++) {
loadCssCache(document.styleSheets[i], "parseStylesheets")
}
s.href.indexOf
is where it fails. Has anyone else run into this problem? Or may know what the problem can be?
- The clue is in the error message – ediblecode Commented Jan 23, 2014 at 10:07
-
6
The problem isn't with
indexOf
, the error message says thats.href
is null or undefined. You need to figure out why that is. – Barmar Commented Jan 23, 2014 at 10:07
1 Answer
Reset to default 3The spec seems to indicate that inline stylesheets (the content contained within a style
attribute) are included in the document.styleSheets
list. The relevant part is probably this:
For inline style sheets, the value of this attribute is null.
So, if you have any style attributes on any elements, you're going to get a null-reference error when trying to read a value off .href
.
A simple fix is to add a check for null
:
function loadCssCache(s,callback){
if(s.href == null || s.href.indexOf(location.host) == -1 || s.href.indexOf(location.host) > 50){
return false
}
}
本文标签: javascriptUnable to get value of the property 39indexOf39Stack Overflow
版权声明:本文标题:javascript - Unable to get value of the property 'indexOf' - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745646632a2668174.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论