Grails:如何动态地添加CSS样式?

时间:2015-12-02 08:36:16

标签: grails gsp

我编写了插件,它有这样的taglib:

class MyTagLib {

    static namespace = "my"

    Closure someWidget = { attrs ->
       // Need somehow add styles to page
       // ...
    }
}

我使用asset-pipeline插件,无法找到动态添加样式表的任何方法(进入head标记)。

应用程序的基本gsp布局(不是我的插件):

<!DOCTYPE html>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <g:layoutHead/>
    <title><g:layoutTitle/></title>
</head>
<body>
    <g:layoutBody/>
    <asset:deferredScripts/>
</body>
</html>

我需要在taglib中使用类似的东西:

g.putItIntoHead(asset.stylesheet(src: 'assets/my.css'))

1 个答案:

答案 0 :(得分:1)

您正在寻找的是一个注入javascript代码的标记。

class MyTagLib {

    static namespace = "my"

    Closure putItIntoHead= { attrs ->
       out << " var head = document.head "; 
       out << " var link = document.createElement('link')";

       out << " link.type = 'text/css'";
       out << " link.rel = 'stylesheet'";
       out << " link.href = '{url}'";

       out << " head.appendChild(link)";
    }
}

您也可以使用jquery,(查看this问题了解更多信息)

而且你不一定要把它添加到头部。

相关问题