window.open vs form.submit

时间:2015-06-09 15:36:19

标签: javascript struts2

我需要做的是,当用户点击某个div /图像时,导航到另一个页面。我在后端使用struts2。

到目前为止,我找到了两种产生相同效果的方法(导航到另一页):

  1. 使用我的操作创建s:url标记。添加div onclick属性,并将url作为参数。在javascript函数中,调用window.open(url)

  2. 使用操作创建表单。使用jquery,请致电document.forms[].submit();

  3. 我想知道的是这两种方法之间的区别。我最感兴趣的是在struts内部发生的事情方面的差异,或者在浏览器和服务器之间的对话方面,或者会话中发生的事情

    一个区别(我不感兴趣)是window.open还接受在新窗口中打开的参数,并调整该窗口的大小。我想在同一窗口中打开新动作

    第二个区别(确实更有趣)是表单允许使用POST或GET协议。至于window.open,我不确定使用哪种协议

1 个答案:

答案 0 :(得分:1)

window.open打开一个新窗口
window.location更改当前页面的位置
forms[n].submit()将第n个表单提交给服务器。

窗口函数发出GET请求,如果需要向服务器发送信息,可以在其中添加URL参数。您可以在URL中发送的字符数有限制,并且在GET请求中发送密码通常不是一个好主意。

当您发布表单时,参数在消息中而不在URL中,因此它们不会显示在浏览器历史记录中,也不会受到URL长度限制的影响。

如果您没有将数据发送到服务器进行处理,而您只需要导航图像,请将其包装在锚标记中

<a href="desired location"><img src=""/></a>