我将旧的webapp从JSF1.X升级到JSF2.X.在教程中,我发现我必须将<body>
替换为<h:body>
。问题是我在调整浏览器窗口大小时使用了javascript方法来计算高度(<body onresize="myFunction()">
)。遗憾的是,<h:body>
不存在onresize事件。
我有什么想法可以解决这个问题吗?提前谢谢。
答案 0 :(得分:1)
如果您使用的是JSF 2.2,则可以使用passthrough属性。
<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?
但是,使用<body onresize>
:
您应该将其挂钩到JS中的window
,而不是HTML中的<body>
。
window.onresize = foo();
您应该将(X)HTML文档中的JavaScript代码量保持在绝对最小值,并尽可能将其放在自己的JS文件中。所以,更喜欢真正的JS文件而不是on***
属性(就像你应该更喜欢真正的CSS文件而不是style
属性)。