[Tapestry5] Tapestry 页面包含新页面 超链接在IE6/7下午效果问题,大家来帮忙看下

foollb 2010-12-21
首页的右上角有一排链接:例如
收件箱 | 我的应用 |我的信息 | 我的参与 |设置 |退出

现在我要在首页点击“我的信息”弹出一个 黑底半透明层,我在首页的代码是这样子的:
<a href="/Welcome?flag=back">首页</a>|
<t:xxx.window.business.MyMessage/>|
<a href="javascript:openSet(550,950);">设置</a>|
<a href="javascript:openHelp(550,950)">帮助</a>|
<a href="javascript:logout()">退出</a>


<t:xxx.window.business.MyMessage/>|MyMessage 是一个新的页面,他会输出一个超链接“我的信息”
现在问题是这样的:
“我的信息”超链接在IE8/ff/google /傲游 等浏览器下面是会达到预期效果的,但是在IE6/IE7和 360 下面,超链接就没有用了,点击,没有任何反应,调试控制弹出层的js,没有报错,从头至尾都走完了,但是不出效果。
哪位大侠,遇到过如此问题,或有相关经验,还请不吝赐教,谢了!
sbfivwsll 2010-12-21
1、你使用的是tapestry哪个版本?
2、使用js调试工具时,是否向服务器发送了ajax请求。
3、使用httpwatch抓一下请求的数据,看是否有成功发起了这个请求。
foollb 2010-12-21
sbfivwsll 写道
1、你使用的是tapestry哪个版本?
2、使用js调试工具时,是否向服务器发送了ajax请求。
3、使用httpwatch抓一下请求的数据,看是否有成功发起了这个请求。

我使用的是t5呀!
不会请求服务器呀,这个链接,只是执行了一段js代码(调用了一个js函数),操作本页面的元素,也就是操作本页面的一个层让其显示呀。函数如下(这个函数从头至尾都是能够执行完的,但是在IE6/IE7/360下面不显示预期效果):
this.showpopup = function(obj){	
		maskshow();		
		var container = $("w_container");		
		container.innerHTML = $(obj).next().innerHTML;
		container.style.display="block";
		var scrolltop=document.documentElement.scrollTop;
		var l = (xwidth-container.offsetWidth)/2 +"px";
		var t = (document.documentElement.clientHeight-container.offsetHeight)/2 + scrolltop +"px";
		container.setStyle({left:l,top:t});	
	}
superaxis 2010-12-24
这个应该是js效果浏览器兼容问题了。
foollb 2010-12-24
superaxis 写道
这个应该是js效果浏览器兼容问题了。

是的,我后来换了种写法和实现方式,把T5组件的DIV内容放置到本也能卖,算是解决了问题。
var showpopup = function(p) {
	
	var element= $(p);
	var maskElement = $("mask");
	if (!maskElement) {
		new Insertion.Before(element, "<div id='mask'></div>");	
		maskElement = $("mask");
	}
	var xwidth = document.body.clientWidth;	
	var xheigt = document.body.clientHeight;
	if (document.documentElement.clientHeight > document.body.clientHeight) {
		xheigt = document.documentElement.clientHeight;
	} 
	maskshow(maskElement,xwidth,xheigt);
	element.style.display = "block";
	var scrolltop = document.documentElement.scrollTop;
	var l = (xwidth - element.offsetWidth) / 2 + "px";
	var t = (document.documentElement.clientHeight - element.offsetHeight) / 2 + scrolltop + "px";
	element.setStyle({
				left : l,
				top : t
			});
}
Global site tag (gtag.js) - Google Analytics