gpt4 book ai didi

javascript - in JSF2. 0 的 onresize 在哪里

转载 作者:行者123 更新时间:2023-11-28 00:40:27 25 4
gpt4 key购买 nike

我正在将旧的 Web 应用程序从 JSF1.X 升级到 JSF2.X。在教程中我看到我必须替换 <body>通过<h:body> 。问题是,当我调整浏览器窗口大小时,我使用了 javascript 方法来计算高度( <body onresize="myFunction()"> )。不幸的是, <h:body> 不存在 onresize 事件。我有什么想法可以解决这个问题吗?提前致谢。

最佳答案

如果您使用 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> 的方法存在 2 个(小)问题。 :

  1. 你应该将它挂接到 window在 JS 中,而不是 <body>在 HTML 中。

    window.onresize = foo();
  2. 您应该将 (X)HTML 文档中的 JavaScript 代码量保持在绝对最小值,并尽可能将其放在自己的 JS 文件中。因此,更喜欢真正的 JS 文件而不是 on***属性(就像您应该更喜欢真实的 CSS 文件而不是 style 属性)。

关于javascript - <h :body> in JSF2. 0 的 onresize 在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27998432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com