`

页面跳转后自动改变目的页面头信息

    博客分类:
  • web
 
阅读更多

今天修改一个Bug,让我很不理解的问题,前说一下背景:
项目当中一个活动页面,是在手机端显示的,没有用HTML5只是使用了JSP文件来实现,首现有A、B两个页面,A页面为HTML页面(此页面是根据一个模板生成出来的HTML页面,放在服务器上可以正常访问与各种连接点击),B页面为JSP活动页面(此页面当中有相关请求到服务器以便进入活动)。
再说一点,A页面当中有一个<a>标签,点击A标签进入后台转向到B页面进行话动,三大框架的项目的应用多的不说了,重点看下面分析。
经过后台的跳转后到B.jsp页面,B页面里的样式与相关引用JS都失效了,使用Firebug查看B页面<head>标记里的所有样式与JS都被替换成了A.html页面的样式,如下代码:

A.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="expires" content="0">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="#href#web/htmlFile/css/jquery.mobile.structure-1.3.2.min.css">
<style type="text/css">
.contentDiv p{ text-indent:0pt;}
.ui-li-heading{white-space:normal}
</style>
<script src="#href#web/htmlFile/js/jquery-1.10.2.min.js"></script>
<script src="#href#web/htmlFile/js/jquery.mobile-1.3.2.js"></script>
<script language="javascript">
	$(document).bind('mobileinit', function() {
		$.mobile.loader.prototype.options.text = "加载中...";
		$.mobile.loader.prototype.options.textVisible = false;
		$.mobile.loader.prototype.options.theme = "a";
		$.mobile.loader.prototype.options.html = "";
	});
</script>
</head>

<body>
//省略各种代码
</body>
</html>

B.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="HandheldFriendly" content="true" />
<meta http-equiv="x-rim-auto-match" content="none" />
<meta name="format-detection" content="telephone=no" />
<link rel="stylesheet" href="<%=basePath%>activity/css/activity_01.css" type="text/css">
<script src="<%=basePath%>js/jquery-1.4.4.min.js"></script>
<script src="<%=basePath%>js/jquery.json-2.3.min.js"></script>
<script type="text/javascript">
var basePath = '<%=basePath%>';
var nm = '${num}';
function getActivity(){
		try{
		$("#getBottom").css("background","none repeat scroll 0 0 #ABABAB");
		$.post("请求后台",{num:nm},function(data){
	  		var da = $.evalJSON(data);
	  		if(da.success=="true"){
	  			switch(parseInt(da.type)){
	  			case -1://异常情况
	  				$("#getActivity").css("display","none");//隐藏领取界面
	  				$("#ExceptionActivity").css("display","inline");//显示失败界面
	  			break;
	  			
	  			case 0://领取失败
	  				$("#getActivity").css("display","none");//隐藏领取界面
	  				$("#bustActivity").css("display","inline");//显示失败界面
	  				$("#buttonClass").css("background","none repeat scroll 0 0 #ABABAB");
	  				timeRun60();
	  			break;
	  			
	  			case 1://已经领取过
	  				$("#presented").css("display","inline");
	  				$("#getActivity").css("display","none");//隐藏领取界面
	  				//window.location.href="请求后台";
	  			break;
	  			
	  			case 2://领取成功
	  				$("#getActivity").css("display","none");//隐藏领取界面
	  				$("#trueActivity").css("display","inline");//显示界面
	  				 timeRun30();
	  			break;
	  			}
	  		}else{
			//领取失败进入再次领取界面
		    $("#getActivity").css("display","none");//隐藏领取界面
			$("#bustActivity").css("display","inline");//显示失败界面
			$("#buttonClass").css("background","none repeat scroll 0 0 #ABABAB");
			timeRun60();
	  		}
	  	});
	}catch(e){//异常情况
		$("#getActivity").css("display","none");//隐藏领取界面
	  	$("#ExceptionActivity").css("display","inline");//显示失败界面
	}
}

//3秒后跳转
	function fn30() {
	var num = document.getElementById('numTime');
	var n = num.innerHTML;
	if (--n) {
	    num.innerHTML = n;
	    setTimeout(fn30, 1000);
	}
	if(n==1){
		queryShare();
	}
   }
   //60秒后跳转
   function fn60() {
 	   var num = document.getElementById('numTime60');
       var n = num.innerHTML;
       if (--n) {
           num.innerHTML = n;
           setTimeout(fn60, 1000);
       }
       if(n==1){
       window.location.href="请求后台";
       }
   }
   //60秒后跳转
   function timeRun30(){
    setTimeout(fn30, 1000);
   }
   //3秒后跳转
    function timeRun60(){
    setTimeout(fn60, 1000);
   }
	//直接跳转到分享界面
	function queryShare(){
		$("#trueActivity").css("display","none");//隐藏界面
		window.location.href="请求后台";
	}
</script>
</head>
<body>
//省略各种代码
</body>
</html>

 代码有一些多,不过这样才能与下面的诡异现象成对比,请看下面Firebug观察的代码,有图有真像

A.html



 

点击请求地址通过服务器跳转到B.jsp页面,如下图:



问题已经说出来了,在网上搜了一下也没有找到解决方法,最后自己在调试与解决过种中,将服务器上存放A.html页面文件夹下的JS与CSS样式删除, 这些样式与JS是A.html页面所依赖的,不过删除就好了,我只好把样式与JS文件放到Tomcat当中,将A.html页面当中的引用路径改成绝对路 径。这样问题就解决了。自己笔记一下。

 

  • 大小: 153 KB
  • 大小: 153 KB
  • 大小: 121.5 KB
分享到:
评论

相关推荐

    一个超炫酷的跳转页面 HTML

    在创建跳转页面时,`&lt;a&gt;`标签是实现页面跳转的关键,通过设置`href`属性指定目标URL。例如: ```html 点击跳转 ``` 如果想要添加一些交互性,比如计时自动跳转,可以结合JavaScript来实现。例如,以下代码会在5秒后...

    js页面跳转代码汇总

    这种方式同样可以用来改变当前窗口的URL,从而达到页面跳转的目的。 #### 五、通过弹窗提示并进行页面跳转 **示例代码:** ```javascript alert("是否确定?"); top.location = 'xx.jsp'; ``` **解析:** ...

    浏览器版本过低跳转升级页面

    在JavaScript中,我们可以使用`window.location`对象来改变当前窗口的URL,从而实现页面跳转。例如,如果检测到IE版本低于某个阈值,可以这样编写代码: ```javascript var userAgent = navigator.userAgent; var ...

    网站页面自动跳转实现方法PHP、JSP(上)

    在表单中,通过设置action属性指定页面跳转的目标URL地址,然后通过JavaScript脚本在页面加载时即提交表单,从而达到自动跳转的目的。示例如下: ```html &lt;!-- document.myform.submit(); --&gt; ***" method="post...

    一些网站页面跳转代码.pdf

    这段代码会立即改变当前窗口或框架的URL,从而实现页面跳转。 如果希望页面在一段时间后自动跳转,可以使用HTML的`&lt;meta&gt;`标签,设置http-equiv属性为"refresh",content属性包含两个值,第一个是延迟时间(秒),...

    PHP页面跳转实现延时跳转的方法

    在PHP编程中,页面跳转是一种常见的操作,用于在用户执行特定操作后引导他们到新的页面。有时,我们可能希望在跳转之前等待一段时间,这就是所谓的延时跳转。这通常用于显示一些提示信息,或者让用户有时间阅读完...

    php 不使用js实现页面跳转

    在web开发中,页面跳转是一个常见的需求,它指的是在用户完成某个操作后,自动或者响应用户的某个命令,将浏览器从当前页面引导到另一个页面。通常情况下,页面跳转会使用JavaScript来实现,例如通过修改window....

    一款清新好看的跳转源码

    这对于不同场景的应用非常灵活,无需编程知识就能实现跳转目的的改变。例如,如果需要将用户引导至一个新的登录页面或者特定的产品详情页,只需在源代码中找到相关的链接字段并更新即可。 标签“软件/插件”表明这...

    flex as actionscript datagrid 背景色 flash itemRenderer script iframe overrider 跳转到别的页面

    默认的ItemRenderer可能无法满足所有需求,因此开发者通常需要创建自定义的ItemRenderer来改变单元格的外观和行为,比如在本例中可能是为了呈现更丰富的播表信息。 4. **背景色设置**: DataGrid的背景色可以通过...

    JQuery.get提交页面不跳转的解决方法

    总之,jQuery 的 `.get` 方法不会自动导致页面跳转,因为它设计为异步加载数据。若需实现跳转,应将跳转逻辑放入 `.get` 的回调函数中,通过修改 `document.location.href` 或 `window.location.href` 来实现。这将...

    语言程序设计资料:三种网页跳转代码.doc

    网页跳转是网络编程中常见的技术,用于在用户访问一个页面后自动导向另一个页面。这里主要介绍了三种不同的网页跳转方式,适用于不同的场景。 1. 服务器端跳转: 在服务器端进行跳转通常使用服务器端脚本语言实现...

    lotus domino BS 运行代理跳转其它URL

    这个操作的目的是在处理完Lotusscript代理逻辑后,引导用户到一个新的Web页面,可能是为了显示处理结果,或者进行后续的操作。这种做法常见于业务流程自动化或数据处理的应用场景中。 总的来说,这个Lotus Domino的...

    mcgs嵌入版 mcgs操作求详解 关于如何设置密码及隐藏跳转等

    - 根据判断结果改变`领料`变量的值,从而控制显示不同的提示信息。 #### 三、隐藏跳转功能解析 除了密码验证外,有时候还需要实现某些功能的隐藏跳转,比如只有在特定条件下才能进入下一个页面。 ##### 1. 隐藏...

    emlog文章页跳转到指定网址插件源码资源下载整理.zip

    这个插件的目的是在用户访问Emlog的文章页面时,自动将他们重定向到预先设定的特定网址,可能是为了推广某个网站、转移流量或者实现其他特定目的。 【描述】"emlog文章页跳转到指定网址插件【源码资源】下载整理....

    web下载文件和跳转的方法

    转发通常用于同一个Web应用内部的页面跳转,可以传递请求对象和会话对象,让接收转发的组件能获取到请求中的信息。 在实现文件下载时,如果不想通过JSP页面或Servlet来直接处理下载,可以配置web.xml文件来识别文件...

    小脑袋吃球球跳转外站代码

    这种类型的代码通常被用于网站的各种目的,比如广告链接、重定向、或者用户在特定操作后自动转到其他页面等。 描述中的"content是跳转时间用法就是域名/go.php?url=跳转地址",揭示了跳转机制的关键部分。`content`...

    自动循环轮播滚动视图

    在iOS中,可以利用CADisplayLink或NSTimer配合页面控制器的动画方法来达到相同目的。 在实现自动循环轮播时,还需要考虑以下几个关键点: 1. **无限循环**:为了实现无缝轮播,我们需要处理数组边界的问题。当到达...

    QQ跳转支付宝并自动领红包脚本(最新)

    而在iOS设备上,如果在QQ环境中,直接通过`location.href`改变页面地址,跳转到指定的红包领取URL。如果不在QQ环境,关闭当前窗口。 `onAutoinit()`函数是整个流程的入口,它会根据设备类型和浏览器环境,调用相应...

    WPF自动分页控件

    本项目标题为“WPF自动分页控件”,是利用Visual Studio 2010和.NET Framework 4.0进行开发的,主要目的是提供一个简便的方式来对数据进行分页显示,减轻UI线程负担,同时允许用户以直观的方式浏览和操作大量数据。...

    swift-启动页面的轮播器

    Swift中的启动页面轮播器就是实现这一目的的有效工具。本文将深入探讨如何使用Swift来构建一个显示当前页面并带有“立即体验”按钮的启动页轮播器。 首先,我们需要了解Swift的基础知识。Swift是由Apple开发的一种...

Global site tag (gtag.js) - Google Analytics