OmniFaces 条件注释未写入 HTML 输出

2023-11-29

我正在使用 OmniFaces conditionalComment 加载 IE 6 浏览器的 javascript 文件。在网站上,它说脚本应该包含在页面中,如下所示:

<script type="text/javascript" src="[JS library]"></script>
<!--[if (gte IE 6)&(lte IE 8)]>
  <script type="text/javascript" src="selectivizr.js"></script>
  <noscript><link rel="stylesheet" href="[fallback css]" /></noscript>
<![endif]-->

这不是有效的 xml,因此不能在 JSF xhtml 文件中使用。相反,我使用这个:

<h:body>
  <f:facet name="last">
    <o:conditionalComment if="if (gte IE 6)&amp;(lte IE 8)">
      <h:outputScript library="js" name="selectivizr-min.js" target="head"/>
    </o:conditionalComment>
  </f:facet>
...
</h:body>

我将脚本包含在 xhtml 的主体部分中,并将其放在 Facet name="last" 中,因此它包含在 JQuery 之后(我使用 PirmeFaces 并阅读这是最安全的方法)。 target="head" 确保将其写入生成的 html 文件的 head 部分。脚本的链接包含在文档的正确部分中(在 PrimeFaces 导入之后),但没有被条件注释包围。

这是 html 的相关部分(为了更容易阅读而重新格式化):

<head>
  <link type="text/css" rel="stylesheet" href="/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo" />
  <link type="text/css" rel="stylesheet" href="/javax.faces.resource/primefaces.css.xhtml?ln=primefaces&amp;v=5.1" />
  <script type="text/javascript" src="/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&amp;v=5.1"></script>
  <script type="text/javascript" src="/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&amp;v=5.1"></script>
  <script type="text/javascript" src="/javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&amp;v=5.1"></script>
  <script type="text/javascript" src="/javax.faces.resource/omnifaces.js.xhtml?ln=omnifaces"></script>
  <link type="text/css" rel="stylesheet" href="/javax.faces.resource/styles.css.xhtml?ln=css" />
  <script type="text/javascript" src="/javax.faces.resource/selectivizr-min.js.xhtml?ln=js"></script>

最后一行缺少注释 (!--[if (gte IE 6)&(lte IE 8)]> ...)。

我究竟做错了什么?有什么建议么?

干杯, 多米尼克


这个问题有两个方面:

  1. The <f:facet name="last">在这种情况下没有任何意义。摆脱它。它将被忽略,包括它的任何子级。仅在内部有效<h:head>(即使如此,只有当您使用 PrimeFaces 时;他实际上忽略了本机 JSF 最后订购头部资源的可能性)。

  2. 你不能使用<h:outputScript> (nor <h:outputStylesheet> inside <o:conditionalComment>,因为 JSF 会隐式地将其自动重定位到<head>。这在文中也有所暗示文档 and showcase.

只需使用普通香草<script> (or <link rel="stylesheet">).

<o:conditionalComment if="(gte IE 6)&amp;(lte IE 8)">
    <script src="#{resource['js/selectivizr-min.js']}" />
</o:conditionalComment>

请注意,我修复了无效的if通过删除重复的属性值if.


无关针对具体问题:library="js"表示对以下内容的误解library属性。仔细阅读JSF 资源库的用途是什么?应该如何使用它? The #{resource}上面答案中的解析器已更改为使用js作为常规文件夹而不是库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OmniFaces 条件注释未写入 HTML 输出 的相关文章

随机推荐

  • 如何将整个窗口移动到屏幕上的某个位置(Tkinter,Python3)

    标题说明了一切 如何使用 tkinter 将整个窗口移动到屏幕上的某个位置 这应该是移动根框架 Use the geometry根 或任何顶级 窗口的方法 例如 import tkinter as tk root tk Tk root ge
  • 即使处理了被拒绝的承诺,仍收到“UnhandledPromiseRejectionWarning”

    我构建了一个迭代的函数Generator包含同步代码和Promises module exports isPromise value return typeof value object value null then in value r
  • 可以“使用严格”警告而不是错误

    使用时use strictperl 将在不安全的构造上生成运行时错误 现在我想知道是否可以让它只打印警告而不导致运行时错误 或者是use warnings 或 w 关于相同问题的警告 No use strict无法发出警告而不死 它所做的只
  • 为什么 Next.js 中间件会多次运行?

    我创建了一个新鲜的Next js using npx create next app latest typescript 安装后 版本为13 3 4 在不更改任何文件的情况下 我添加了一个新的middleware ts文件内的src文件夹
  • Java中有没有办法实现n层嵌套循环?

    换句话说 我可以做类似的事情吗 for for for 除了N次 换句话说 当调用创建循环的方法时 它会被赋予一些参数 N 然后该方法将创建 N 个嵌套在另一个循环中的循环 当然 我们的想法是应该有一种 简单 或 通常 的方法来做到这一点
  • 我希望我的 Domino Servlet 获得经过身份验证的用户会话

    这似乎是一个非常基本的问题 在 Domino 上托管的正在运行的 Servlet 中 我想要访问 Domino 资源 我已经使用 IBM Notes 和 Domino 的非常精细的安全性明智地保护了这些资源 我希望 Servlet 能够向
  • React Native 错误:原始“”必须包含在显式 组件中

    您好 我在本机反应中遇到此错误 无法找出导致此错误的原因 帮助将不胜感激 谢谢 问题是空格 但是 使用制表符不算空格 尝试删除之间的空间tag和comment在第 32 和 37 行
  • 如何使用 XLRD 或 openpyxl 编辑 Excel 工作簿,同时保留图表?

    我有一本工作簿 里面有一些工作表 其中一张纸上有图表 我需要使用 xlrd 或 openpyxl 编辑另一张工作表 但是 每当我保存工作簿时 图表就会消失 有什么解决方法吗 是否有另一个保留图表和格式的 python 包 目前这两者都不可能
  • Spring 3 MVC + MySQL:无法存储 € 字符

    我使用 Hibernate 和 MySQL 5 设置了 Spring 3 MVC 在 Web 表单中 我在字段中输入单个字符 即仅一个字符 当我尝试保存数据时 出现以下异常 java sql BatchUpdateException Dat
  • Gradle 任务配置与任务执行

    下面的代码有什么区别 task A println configuration task B lt lt println action 我认为这与评价有关 即任务 A 总是被评估 而任务 B 仅在执行时才进行评估 事实上 任务 A 的 pr
  • 在 Monotouch 中使用 CoreAnimation 为自定义属性设置动画?

    这本质上与此处发布的问题相同 在 CALayer 中对自定义属性进行动画处理一年多前 尚未得到答复 我创建一个自定义图层并在其上画一个圆圈 我希望能够对圆的半径 以及稍后的其他属性 进行动画处理 根据我读到的内容 我是这样设置的 publi
  • 我在哪里可以找到一些 UML 示例? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我需要大量 UML 图样本作为开发我自己的图的起点 有谁知道有什么好的网站可以找到吗 Thanks 学习 UML 的最佳资源是 Martin Fowler 的 UML 蒸馏 如今 这
  • 在离线 iOS 应用程序中使用 MBTiles

    我已经有一个使用 MBTiles 格式存储的地图 我想在我正在制作的应用程序中使用它 应用程序在移动设备上没有信号 连接的情况下运行至关重要 Mapbox 之前有一个示例 介绍了如何将 MBTiles 与 RMMBTilesSource 一
  • 使用四元数从 iPhone 计算偏航、俯仰和滚动?

    我见过很多问题和文章提到四元数可以用来从 iPhone 获得更好 更准确 更稳定的偏航 俯仰和横滚读数 而不是读取它的直接偏航 俯仰和横滚读数 但与此同时 我还没有看到任何在iPhone平台上实现四元数的正确方法 作为初学者 真的很难知道这
  • Socket.io 不适用于 Firefox 和 Chrome

    我正在尝试开发一个简单的聊天应用程序 这是我的chat js file var app require http createServer handler io require socket io listen app fs require
  • 在 python 中使用 cairosvg 模块时可以指定缩放吗

    cairosvg 的命令行版本允许缩放 这是帮助函数的输出 cairosvg h usage cairosvg h v f pdf png ps svg d DPI W WIDTH H HEIGHT s SCALE u o OUTPUT i
  • Kafka Streams - 如何更好地控制内部创建的状态存储主题的分区?

    Kafka Streams 中的状态存储是在内部创建的 状态存储按键分区 但不允许提供除by key 据我所知 问题 How to 控制状态存储内部创建主题的分区数量 状态存储主题如何推断默认情况下要使用的分区数量和分区 以及如何覆盖 如果
  • OpenGL 计算着色器 SSBO

    我想要一个在输出缓冲区中写入 1 的计算着色器 我编译着色器并将其附加到程序中 没有问题 然后我调用glDispatchCompute 函数 我等到计算着色器结束 但当我看到数组时 只有 0 谁能告诉我错误在哪里 这是我的计算着色器代码 v
  • 是否无法从 BroadcastReceiver 启动活动

    我想从扩展 BroadcastReceiver 的类中调用此活动 但它不起作用 Intent i new Intent DevicePolicyManager ACTION SET NEW PASSWORD context startAct
  • OmniFaces 条件注释未写入 HTML 输出

    我正在使用 OmniFaces conditionalComment 加载 IE 6 浏览器的 javascript 文件 在网站上 它说脚本应该包含在页面中 如下所示 这不是有效的 xml 因此不能在 JSF xhtml 文件中使