如何交换CSS - 无法获取元素样式表[object HTMLLinkElement]

时间:2013-03-11 08:58:00

标签: javascript android css cross-browser sencha-touch

我有一个JS函数,应该获得CSS swap的样式表元素。 在IPHONE或桌面版Chrome和Safari上运行页面时,我能够成功交换css。

我的问题出现在Android浏览器

if (a.getAttribute("rel").indexOf("style") != -1) {
从我的代码

返回FALSE。

似乎在

Android Web浏览器a.getAttribute("rel))" : stylesheet元素不存在。

知道为什么会出现这种行为以及如何解决它?

// Swap CSS
changeStyle: function(state) {       
    var i, a, url, i = 0;
    for (i; (a = document.getElementsByTagName("link")[i]); i++) {
        if (a.getAttribute("rel").indexOf("style") != -1) {
            url = a.href;
            if (state == 'accessible') {
                a.href = 'resources/css/app-accesibility.css';;
            }
            else if (state == 'normal') {
                a.href = 'resources/css/app.css';
            }
        }

    }

}

1 个答案:

答案 0 :(得分:1)

可能是其他链接元素被添加到android上的头部,插件或其他任何东西。在访问之前确保rel属性存在:

if (a.getAttribute("rel") && a.getAttribute("rel").indexOf("style") != -1) {