2013-03-11 15 views
0

我有一个JS函数,应该为CSS交换获取样式表元素。 在IPHONE或桌面版Chrome和Safari上运行页面时,我可以成功交换CSS。如何交换CSS - 无法获取元素样式表[对象HTMLLinkElement]

我的问题是关于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

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

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