使用onload事件避免无限循环

时间:2014-04-16 02:26:54

标签: javascript jsp loops onload infinite

我在javascript上很新,我遇到了一个问题: 我有一个通过jsp页面中的按钮调用Action的方法。

问题是,我想在加载我的jsp页面后立即执行此Action,而不必使用按钮事件。

我试图在JSP主体内部使用onload()事件。这会在加载后执行我的Action,但是,它会保持无限循环,因为它会一遍又一遍地加载页面。

<script language="JavaScript" type="text/javascript">
    function send()
    {
        document.forms['thisForm'].submit(); 
    }
</script    
....
<body onload="send()">

<html:form action="/something/foo.do?method=methodFoo" method="post">

无论如何都要避免这种无限循环? 非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试AJAX执行您的操作,而无需提交表单。

答案 1 :(得分:0)

有很多可能的方法可以解决这个问题,但我会从最喜欢的方式开始:

BODY onLoad="window.location.href='EXAMPLE.html';" onUnload="send();"

这里发生的事情是,它首先要做的是将您带到一个新的网页(“EXAMPLE.html”),但它必须在退出时运行您的JavaScript。通过这样做,它无法进入无限循环。

另一种方法:

BODY onLoad="send();window.close();"

有了这个,它将在运行命令后尝试关闭窗口。我不是这个的忠实粉丝,因为window.close命令的行为可能会有所不同,具体取决于他们使用的浏览器,而且几乎总是需要个人同意关闭它。但是,它可能适合你。