JSF2.0 中 <h:body> 的 onresize 在哪里
Where is onresize for <h:body> in JSF2.0
我正在将我的旧 Web 应用程序从 JSF1.X 升级到 JSF2.X。在教程中我看到我必须用 <h:body>
替换 <body>
。问题是当我调整浏览器的 window (<body onresize="myFunction()">
) 大小时,我使用了 javascript 方法来计算高度。不幸的是,<h:body>
不存在 onresize 事件。
知道我可以解决这个问题吗?提前致谢。
如果您使用的是 JSF 2.2,则可以使用直通属性。
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:body a:onresize="foo()">
如果您使用的是 2.0(已经超过 5 年),那么您无法绕过 HtmlBody
的自定义渲染器。可以在此处找到启动示例:How to spefic the body id attribute in JSF 2?
但是,这种方法有 2 个(小的)问题 <body onresize>
:
你应该将它挂接到 JS 中的 window
,而不是 HTML 中的 <body>
。
window.onresize = foo();
您应该将 (X)HTML 文档中的 JavaScript 代码量保持在绝对最小值,并尽可能多地放在自己的文档中.js 文件。因此,比 on***
属性更喜欢真正的 JS 文件(就像你应该更喜欢真正的 CSS 文件而不是 style
属性)。
我正在将我的旧 Web 应用程序从 JSF1.X 升级到 JSF2.X。在教程中我看到我必须用 <h:body>
替换 <body>
。问题是当我调整浏览器的 window (<body onresize="myFunction()">
) 大小时,我使用了 javascript 方法来计算高度。不幸的是,<h:body>
不存在 onresize 事件。
知道我可以解决这个问题吗?提前致谢。
如果您使用的是 JSF 2.2,则可以使用直通属性。
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:body a:onresize="foo()">
如果您使用的是 2.0(已经超过 5 年),那么您无法绕过 HtmlBody
的自定义渲染器。可以在此处找到启动示例:How to spefic the body id attribute in JSF 2?
但是,这种方法有 2 个(小的)问题 <body onresize>
:
你应该将它挂接到 JS 中的
window
,而不是 HTML 中的<body>
。window.onresize = foo();
您应该将 (X)HTML 文档中的 JavaScript 代码量保持在绝对最小值,并尽可能多地放在自己的文档中.js 文件。因此,比
on***
属性更喜欢真正的 JS 文件(就像你应该更喜欢真正的 CSS 文件而不是style
属性)。