【问题标题】:Rendering hidden span text inside h:commandLink在 h:commandLink 中渲染隐藏的 span 文本
【发布时间】:2013-04-30 15:10:44
【问题描述】:

我们有一项辅助功能要求,即为屏幕阅读器呈现带有额外“屏幕外”文本的某些命令链接。所以我们希望最终呈现类似(为清楚起见省略属性)

<a>Edit Details<span class="hiddenOffScreen"> for John Smith</span></a>

问题是标准 jsf1.2 &lt;h:commandLink&gt; 标签不尊重 escape 属性。我尝试了类似&lt;h:commandLink escape="false" value="#{linkText}"/&gt; 之类的方法,其中 linkText 评估为上面显示的 a 标签的内容,但这会按字面意思呈现 span 标签(即转义 )

如何才能最好地满足这一要求?我当然可以稍后使用 JQuery 轻松添加跨度,但是,为了我自己的教育,我想尝试使用自定义渲染器 - 但不确定如何使用添加“onClick”事件的现有默认渲染器处理程序和相关的 javascript。在搜索自定义 commandLink 渲染器时,我的 google-foo 似乎让我失望了。

请记住,这是 JSF 1.2,我们不能使用任何第三方标记库,因为我们在 WebSphere Portal Server 的脑残非常旧的版本上运行。

【问题讨论】:

    标签: jsf jsf-1.2


    【解决方案1】:

    您可以在&lt;h:commandLink&gt; 标签内嵌套内容,包括其他标签和/或隐式文本,而不是在其value 属性中指定文本,以实现您的功能:

    <h:commandLink ...>
        <h:outputText .../>
        <span class="hidden"></span>
        #{bean.someText}
    </h:commandLink>
    

    这将完全呈现你想要的。

    【讨论】:

    • 拍脑袋。当然。我忘记了你不需要为 commandLink 使用value 属性。愚蠢的我! :(
    【解决方案2】:

    用写

    【讨论】:

    • 我认为您的意思是使用实体转义 - 但这不起作用。我不想在屏幕上呈现文字 escape 属性应该做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 2016-07-19
    • 2018-04-25
    • 2017-09-27
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多