【问题标题】:window.onload not triggered by rerender in richfaces?在richfaces中重新渲染不会触发window.onload?
【发布时间】:2011-07-27 20:04:03
【问题描述】:

我在网站的很多地方都希望在页面加载时执行 javascript 代码,以及在重新呈现代码周围的区域时, 例如

<div id="blah">
<script>
addLoadEvent(function (){
  submenus.init('somedata');
});

</script>
loads of other stuff here
</div>

大部分代码是 div 中存在的菜单、滑块等的初始化代码。

我想通过将函数调用添加到 window.onload 来处理这些代码 sn-ps 事件。

这可以很好地加载页面,但是如果我重新渲染该区域,则不会触发 window.onload 事件... 我已经在不同的浏览器中尝试过,但没有成功。

我不能使用导致重新渲染的元素中的 oncomplete,因为它们无处不在,而且它们不应该真正了解组件的实现。

有什么办法解决这个问题吗?

【问题讨论】:

  • 如果您的页面使用 ajax 调用更新,window.onload 将不会触发,请参阅stackoverflow.com/questions/1694338/…
  • hm,知道如何通过重新渲染(不使用 oncomplete)来触发事件吗?我似乎无法找到一种方法来确定代码是否被重新渲染或正常加载....

标签: javascript jsf richfaces rerender


【解决方案1】:

JQuery 有一个很好的解决方案,但我不确定您是否会为此加载 JQuery。

http://api.jquery.com/ready/

【讨论】:

  • 感谢您的评论,这将是最简单的,但不幸的是我们不能在这个项目中使用 jquery(不是我的决定..)
【解决方案2】:

哇!我遇到的问题是我正在加载javascript异步 (忘了它;它是几年前构建的),当它尝试调用不存在的函数时,导致 FF4 中的 javascript 错误,因此我开始尝试让它与 window.onload 一起使用。

我只是正常加载外部javascript,一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2017-06-09
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多