js怎么禁止浏览器的前进,后退,刷新

JavaScript09

js怎么禁止浏览器的前进,后退,刷新,第1张

history.go(-1)表示后退与刷新。如数据有改变也随之改变

history.back()只是单纯的返回到上一页。

window.location.reload() //刷新

window.history.go(1)//前进

window.history.go(-1) //返回+刷新

window.history.forward() //前进

window.history.back() //返回

1.在Struts中,如何实现防止表单的重复提交操作?

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,

基本原理是:

1) 服务器端在处理请求到达之前,会将 请求 中包含的令牌值与保存在当前 用户会话 中的令牌值进行比较,看是否匹配。

2) 在处理完该请求后,且在答复客户端之前,会产生一个新的令牌值,该令牌值除传给客户端以外,也会将 用户会话 中保存的旧的令牌值进行替换。

3) 这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌值就和服务器端的令牌值不一致,从而有效地防止了重复提交的发生。

2.Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的

3.在form中生成一个token码,在session中也保存有一个同样的token码,

当表单提交后,判断两个token码相等后,就会改变session中的这个token码,

当然在用回退后,form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。

作用:Token机制可以解决表单的重复提交;

产生token的两种方式: 

<1>. form表单的post请求,使用隐藏域<input type="hidden" name="token" value="${token}">;

<2>. 直接使用超级链接<html:link action="" trasantion="true">,可以直接在链接后面添加token值。

在js中直接添加html语句,js会将html字符串解析成相应的HTML语句,并在前端进行显示。 

代码如下:

<span style="font-size:14px">var el = document.createElement( 'div' ) 

el.innerHTML

"<html><head><title>titleTest</title></head><body><a

href='test0'>test01</a><a 

href='test1'>test02</a><a 

href='test2'>test03</a></body></html>" 

el.getElementsByTagName( 'a' )// Live NodeList of your anchor elements</span> 

2.在jquery中进行应用: 

代码如下:

var el = $( '<div></div>' ) 

el.html("<html><head><title>titleTest</title></head><body><a

href='test0'>test01</a><a 

href='test1'>test02</a><a 

href='test2'>test03</a></body></html>") 

$('a', el) // All the anchor elements