<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="JS/jquery-1.3.2.1.min.js"></script>
<script type="text/javascript">
$.ajax({
type: "Get",
url: 'login.aspx',
dataType: 'html',
success: function(result) {
document.body.innerHTML = result;
//document.write(result);
}
});
</script>
</head>
<body>
<div>
</div>
</body>
</html>如上,我的思想是,当用户没有登录的时候,我用ajax取得我登录页面的面容替换当前页面
那这里的success应该怎么写呢?谢谢
$.ajax({
type: "Get",
url: 'login.aspx',
dataType: 'html',
success: function(result) {
$("body").html(result);
}
});
$.ajax({
type: "Get",
url: 'login.aspx',
dataType: 'html',
success: function(result) {
$("body").html("");//先清空
$("body").html(result);
}
});
不行,这样只是将我的login.aspx的内容放到了原来页面的body中
这样会造成
<html>
<body>
<html>
<body>
</body>
</html>
</body>
</html>
你把login.aspx里的多余的内容都去了,只留下登陆部分,例如
login.aspx:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage=""%>
<%@ taglib uri="/fwars" prefix="fwars" %>
<script type="text/javascript">
</script>
//头部可以保留
//<html> 和<body>什么的都去掉,只留下要显示的部分
<div>
</div>
var htmlContent = " login.aspx 中你需要的部分 "; //注意将""里面的""都改成‘’
然后$("body").html(htmlContent);
//var str="<html><head><body onload='d'>这里是body的内容</body></head></html>";
//alert(str.match(/<body[^>]*>([\s\S]*)<\/body>/i)[1]);
问题是:
在我的login.aspx里面的header里面的怎么办呢?
//body
//alert(result.match(/<body[^>]*>([\s\S]*)<\/body>/i)[1]);
var head=result.match(/<head[^>]*>([\s\S]*)<\/head>/i)[1];//取出head内容
head=head.replace(/<title[^>]*>(?:[\s\S]*)<\/title>/i,"");//去掉title的内容,你也可以不去掉
$("head").append(head);//将head内容添加到head
-------------------------------------------
这样就会进行跳转
不是很好的用户体验