代码之家  ›  专栏  ›  技术社区  ›  Alec Smart

从网页卸载CSS

  •  44
  • Alec Smart  · 技术社区  · 15 年前

    我想知道如何从页面中卸载CSS。例如,在我的页面中,我包含了一个名为a.css的文件。现在我希望用户能够改变主题,这是CSS驱动的,因此他/她应该能够卸载a.css,然后我可以加载b.css(否则他们会发生冲突)

    你知道怎么做吗?

    4 回复  |  直到 8 年前
        1
  •  61
  •   Xinus    15 年前

    获取链接元素并禁用它

    document.getElementsByTagName('link')[0].disabled = true; 
    
        2
  •  26
  •   Rene Pot    11 年前

    使用jquery,可以:

    $("link[href='fileToRemove.css']").remove();
    

    显然,将filetoremove.css替换为要卸载的文件的相对路径和文件名。

        3
  •  8
  •   meder omuraliev    15 年前
    var firstLink = document.getElementsByTagName('link')[0];
    firstLink.parentNode.removeChild(firstLink)
    

    这将删除页面上的第一个链接元素-不确定HTML的结构,但我相信您可以将其用作示例。如果类型属性是“text/css”,并且目标是正确的媒体(屏幕),则可能需要检查该属性;如果有其他链接元素不是css引用,则可能需要检查href是否在任何位置包含“css”。

    注意,您也可以重新设置href属性以指向不存在的页面,而不是完全删除元素。

        4
  •  1
  •   Jack G    8 年前

    奇怪的是,IE和火狐支持禁用属性,但不支持Chrome、Safari或Opera。所以,这应该是最交叉的浏览器。

    // disables all styles in the document
    function unload_stylesheet(DOMelement){
        DOMelement.disabled = true;
        DOMelement.parentNode.removeChild( DOMelement );
    }
    // usage
    unload_stylesheet( document.getElementsByTagName('link')[0] );