Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法获取属性的值';指数';_Javascript_Html_Css_Internet Explorer_Polyfills - Fatal编程技术网

Javascript 无法获取属性的值';指数';

Javascript 无法获取属性的值';指数';,javascript,html,css,internet-explorer,polyfills,Javascript,Html,Css,Internet Explorer,Polyfills,我使用的是CSS多列布局(css3),当然在Chrome、FF和Safari中也能很好地工作。 但是很多人仍然使用IE9,我们需要支持它 对于IE支持,我包括csscolumnspolyfill js from 当此polyfill加载到IE9中时,我在控制台中收到以下错误消息: 'unable to get value of the property 'indexof' object is null or undefined' 调试器会突出显示此代码作为问题源: function loadC

我使用的是CSS多列布局(css3),当然在Chrome、FF和Safari中也能很好地工作。 但是很多人仍然使用IE9,我们需要支持它

对于IE支持,我包括
csscolumns
polyfill js from

当此polyfill加载到IE9中时,我在控制台中收到以下错误消息:

'unable to get value of the property 'indexof' object is null or undefined'
调试器会突出显示此代码作为问题源:

function loadCssCache(s,callback){if(s.href.indexOf(location.host)==-1||s.href.indexOf(location.host)>50){return false}
调用
loadCssCache
的代码是:

for (var i = 0; i < document.styleSheets.length; i++) {
    loadCssCache(document.styleSheets[i], "parseStylesheets")
}
for(var i=0;i
s.href.indexOf
是它失败的地方。还有其他人遇到过这个问题吗?或者可能知道问题出在哪里?

似乎表明内联样式表(包含在
样式
属性中的内容)包含在
文档.样式表
列表中。相关部分可能是:

对于内联样式表,此属性的值为null

因此,如果您在任何元素上都有任何样式属性,那么在尝试从
.href
读取值时将出现空引用错误

一个简单的修复方法是添加一个检查
null

function loadCssCache(s,callback){
    if(s.href == null || s.href.indexOf(location.host) == -1 || s.href.indexOf(location.host) > 50){
        return false
    }
}

线索在错误消息中。问题不在于
indexOf
,错误消息说
s.href
为空或未定义。你需要弄清楚这是为什么。我在csscolumns的div上没有使用内联样式,在另一个div上只使用“height”内联样式来制作动画。一个解决方案是手动更新href以查找空值。@gorn
document
指的是整个页面,因此如果任何元素具有内联样式,它将被包括在内。通过将
console.log(document.styleSheets)
添加到
script
元素之一,可以查看浏览器试图解析的内容。是的,
document.styleSheets[0]
是测试它的好方法。问题是我加载脚本太早了。css还没有准备好:|