【问题标题】:Grails: How to add css styles to page dynamicly?Grails:如何动态添加css样式到页面?
【发布时间】:2015-12-02 17:18:31
【问题描述】:

我写了一个插件,它有这样的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'))

【问题讨论】:

    标签: grails gsp


    【解决方案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 问题了解更多信息)

    而且您不一定要将它添加到头部。

    【讨论】:

    • 谢谢!似乎这是最简单的方法。
    猜你喜欢
    • 2012-02-03
    • 2011-06-18
    • 2023-03-18
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多