如何交换CSS -无法获得元素样式表[objecthtmllinkelement]

How to swap CSS - Cannot get element stylesheet [object HTMLLinkElement]

本文关键字:元素 样式 objecthtmllinkelement 何交换 交换 CSS      更新时间:2023-09-26

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

我的问题是在Android浏览器

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

从我的代码返回FALSE

似乎在

Android Web Browser 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';
            }
        }
    }
}

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

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