2

Google PlusOne 代码如下所示:<g:plusone size="medium"></g:plusone>

不幸的是,在 Grails 世界中,“g:”是保留的。

我相信您可以修改 Grails 库,但我正在寻找一种更简单的方法。我怎样才能简单地要求 Grails 不解析这个字符串?

4

4 回答 4

3

我将回答我自己的问题并感谢 Quentin,他对问题发表了评论但没有写答案(如果您发布答案,我将选择您作为正确答案)。

有一个 HTML 版本:

<div class="g-plusone" data-size="medium"></div>
于 2011-08-28T08:05:20.077 回答
1

或者你可以在你的 gsp 文件中这样输出它:

${'<g:plusone annotation="inline" href="http://www.anythinggoeshere_xyz.com"></g:plusone>'}
于 2011-12-30T22:41:41.100 回答
0

好吧,您唯一的解决方案是更改您正在使用的标记库。

如果您使用的是 taglib,您唯一需要做的就是使用您想要的名称添加一个名为 namespace 的静态属性,如下例所示:

static namespace = google1
于 2011-08-24T12:27:49.080 回答
0

James Williams 的 taglib 解决方案的基础上,我能够使用这个 taglib 渲染一个 +1 按钮,我在我的 taglib 文件夹中命名为 GooglePlusOneTagLib.grooovy:

class GooglePlusOneTagLib {

    def plusone = { attrs, body ->
        out << "<g:plusone "+(attrs.size ? "size=${attrs.size}" : "") +"></g:plusone>"
    }

    def plusoneScript = { attrs, body ->
        out << '''<script type="text/javascript">
                  (function() {
                    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
                    po.src = 'https://apis.google.com/js/plusone.js';
                    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
                  })();
                    </script>'''
    }

}

然后你只需在你的 gsp 中使用这些标签

<g:plusone size="medium"></g:plusone>
<g:plusoneScript />
于 2012-01-21T15:02:01.877 回答