我们在用thickbox 插件做登录弹框的时候,
想要达到登录成功后直接返回父页面并且刷新父页面,其实整个思路可以是这个样子。
1、弹出的页面不管是html好还是一个div也好,我们做登录就用ajax异步完成。这样才可以保证这个页面没有刷新弹出的框不会消失,哦?你还不会ajax没有关系,跟着我做就可以,对了很多初学者都人为ajax是jquery或者其他技术的一部分,这大错特错,ajax在你不引用任何js包的情况下都能使用,这是因为每个浏览器自带支持ajax的部分。
<script type="text/javascript">
//生成XMLHttpRequest对象
function createXMLHttpRequest(){
var xmlHttp=false;
//判断浏览器
if(window.XMLHttpRequest)//有XMLHttpRequest存在则说明不是ie浏览器
{
xmlHttp=new XMLHttpRequest();
}
else{
//ie浏览器
xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
}
return xmlHttp;
}
//从外部传递一个uid和pwd过来
//通过documen.getElementById("uid").value来取值
function validateUser(uid,pwd){
//对应的登录页面
var url="userAction?validateuser?uid="+uid+"&pwd="+pwd;
var xmlHttp=createXMLHttpRequest();
xmlHttp.open("GET",url,true);//一般很少用post,post用于传递大量参数
xmlHttp.send(null);
xmlHttp.onreadystatechange=fucntion thread(){//回调函数
if(xmlHttp.readyState==4&&xmlHttp.status==200){
var result=xmlHttp.responseText;
var resultArr=eval(result);//获得后台传递的json字符,通过eval直接转换为数组
for(var i=0;i<resultArr.length;i++){
//....... 你需要的东西
}
}
}
}
</script>
2.验证成功之后想要关闭这个页面我们很多时候都想通过window.close();来完成但是不幸的是很多浏览器比如火狐默认是禁用脚本关闭的所以写这个方法不起作用除非用户自己动手改火狐配置,我们写的东西来麻烦用户是不是不好啊。那我们就用别的方式罗。我推荐使用window.location来获得当前地址栏路径,而后通过
window.location.href=window.location
进而跳转到父页面,这样既达到了刷新目的又达到关闭子页面的目的。
3.ok 完成了