gpt4 book ai didi

javascript - Firefox 自版本 18 以来的错误

转载 作者:行者123 更新时间:2023-12-02 18:55:56 24 4
gpt4 key购买 nike

我正在使用 Java Server Faces、JQuery 和 JavaScript。我想我在 Firefox 中发现了一个错误。此 JavaScript 代码被触发:

var list = jQuery('input.myclass');
var item = list.eq(0);
item.click();
top.location.reload(true);

单击将点击 a4j:commandButton,它与我的操作方法“mybean.myaction()”相关。如果我使用 Firefox 19 或 Firefox 18,可能会点击该按钮。不管怎样,页面的重新加载发生得太快了。我可以通过在 mybean.myaction() 中设置 Eclipse 断点来看到这一点 - 断点从未到达。

如果我使用的是 Firefox 17,InternetExplorer 一切都按预期工作,Javascript 被触发,点击发生,bean 方法调整 bean 的状态,页面被重新加载。

提前感谢您给我一些如何澄清此行为原因的想法。如果合适的话,我将在 Firefox bugzilla 中提交一个错误。

更新:这是由 JQuery 单击的 a4j:commandButton;

<a4j:commandButton action="#{mybean.myaction}" value="setMyVal" styleClass="hidden myclass">
<a4j:actionparam name="myparamname" value="MY_VAL" assignTo="#{mybean.myattr}" /></a4j:commandButton>

UPDATE-2:我尝试找出问题所在。我在 block 周围放置了一个 try-catch 语句,此外我还替换了 reload() ,以便我能够跟踪 javascript 执行。现在,我可以看到,如果我输入 top.location.host 我将跳转到 catch block ,但我的 errorText 是“未定义”。怎么会发生这种事呢?我该怎么做才能了解更多有关此异常的信息?

try{ ...
item.click();
// Firefox-Bug in Version ab 18.0.1
var res = top.location.host; //top.location.reload(true);
} catch (e) {
var errorText = e.message; // errorText is undefined!
alert("Exception: " + errorText);
}

UPDATE-3:它变得越来越陌生......如果我在 item.click() 和 top.location.reload(true) 之间设置 Firebug 断点;一切顺利!因此,问题可能出在 a4j 上。也许今天放弃是明智的。感谢您迄今为止的所有帮助!

最佳答案

这并不完全是问题的答案,而是关于如何解决问题的建议。因此,您可以使用 commandButton 的 oncomplete 属性在操作完成后重新加载页面:

<a4j:commandButton action="#{mybean.myaction}" value="setMyVal" styleClass="hidden myclass" oncomplete="top.location.reload(true);">
<a4j:actionparam name="myparamname" value="MY_VAL" assignTo="#{mybean.myattr}" />
</a4j:commandButton>

通过这种方式,您可以序列化事件:首先调用操作,并且仅在重新加载页面后调用操作。当然,您需要从 JavaScript 代码中删除 top.location.reload(true);

编辑:更多地思考这个问题......在我看来这不是一个错误。 Firefox 不需要在任何地方等待您的点击事件(在 Richfaces 中是一个复杂的操作)在服务器上得到处理。它将点击事件分派(dispatch)给 Richfaces javascript,然后继续执行下一条语句:top.location.reload(true);。您需要防止这个问题。

关于javascript - Firefox 自版本 18 以来的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367130/

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