请帮忙测试一下

xuzuning 2005-11-21 09:27:09
其实firefox很糟糕!我想不明白为什么有那么多人要用他。

<HTML>
<HEAD>
<TITLE>DHTML Demo</TITLE>
<script language="javascript">
<!--
ff5 = navigator.appName == 'Netscape' ? true : false; //mozilla firefox
ns4 = document.layers ? true : false; //Netscape
ie4 = document.all ? true : false; //Microsoft Internet Explorer
var dragClickX, dragClickY; //用于保存单击鼠标时的坐标
var dragActive = false; //移动标志
var dragObj; //移动对象
var tpl = ''; //信息列表模板

/**
* 初始化
**/
function init() {
if(ns4) {
dragObj = document.squareDiv;
dragObj.xpos = dragObj.left;
dragObj.ypos = dragObj.top;
dragObj.w = dragObj.clip.width;
dragObj.h = dragObj.clip.height;
}
if(ie4) {
dragObj = document.getElementById('squareDiv');
dragObj.xpos = dragObj.offsetLeft;
dragObj.ypos = dragObj.offsetTop;
dragObj.w = dragObj.offsetWidth;
dragObj.h = dragObj.offsetHeight;
}
if(ff5) {
dragObj = document.getElementById('squareDiv');
dragObj.xpos = dragObj.offsetTop;
dragObj.ypos = dragObj.offsetLeft;
dragObj.w = dragObj.offsetWidth;
dragObj.h = dragObj.offsetHeight;
}
dragActive = false;

document.onmousedown = mouseDown;
document.onmousemove = mouseMove;
document.onmouseup = mouseUp;
document.onkeydown = info;
document.onkeyup = info;
document.onkeypress = info;
if(ns4)
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
tpl = document.getElementById('view').innerHTML;
}

/**
* 鼠标键按下事件
**/
function mouseDown(e) {
info(e);
if((ns4 && e.which==1) || ie4 || ff5) {
if(ns4 || ff5) {
var x = e.pageX;
var y = e.pageY;
}
if(ie4) {
var x = event.x + document.body.scrollLeft;
var y = event.y + document.body.scrollTop;
}
if(x>=dragObj.xpos && x<=dragObj.xpos+dragObj.w && y>=dragObj.ypos && y<=dragObj.ypos+dragObj.h) {
dragClickX = x - dragObj.xpos;
dragClickY = y - dragObj.ypos;
dragActive = true;
return false;
}
}
}

/**
* 鼠标键抬起事件
**/
function mouseUp(e) {
dragActive = false;
}

/**
* 鼠标移动事件
**/
function mouseMove(e) {
info(e);
if(ns4 || ff5) {
var x = e.pageX;
var y = e.pageY;
}
if(ie4) {
var x = event.x + document.body.scrollLeft;
var y = event.y + document.body.scrollTop;
}
if(dragActive) {
dragObj.xpos = x - dragClickX;
dragObj.ypos = y - dragClickY;
if(ff5) {
dragObj.setAttribute('style','left:'+dragObj.xpos+';top:'+dragObj.ypos);
}
if(ns4) {
dragObj.left = dragObj.xpos;
dragObj.top = dragObj.ypos;
}
if(ie4) {
dragObj.style.pixelLeft = dragObj.xpos;
dragObj.style.pixelTop = dragObj.ypos;
}
return false;
}
}

/**
* 显示节点事件信息
**/
function info(e) {
if(ie4) e = event;
var s = tpl;
s = s.replace('{appName}', navigator.appName);
s = s.replace('{type}', e.type);
if(ff5) {
s = s.replace('{nodeName}', e.explicitOriginalTarget.nodeName);
s = s.replace('{ID}', e.explicitOriginalTarget.id);
s = s.replace('{name}', e.explicitOriginalTarget.name);
s = s.replace('{layerX}', e.layerX);
s = s.replace('{layerY}', e.layerY);
s = s.replace('{pageX}', e.pageX);
s = s.replace('{pageY}', e.pageY);
s = s.replace('{offsetLeft}',+ e.explicitOriginalTarget.offsetLeft);
s = s.replace('{offsetTop}', e.explicitOriginalTarget.offsetTop);
}
if(ie4) {
s = s.replace('{nodeName}', e.srcElement.nodeName);
s = s.replace('{ID}', e.srcElement.id);
s = s.replace('{name}', e.srcElement.name);
s = s.replace('{offsetX}', e.offsetX);
s = s.replace('{offsetY}', e.offsetY);
s = s.replace('{x}', e.x);
s = s.replace('{y}', e.y);
}
s = s.replace(/\{screenX\}/g, e.screenX);
s = s.replace(/\{screenY\}/g, e.screenY);
s = s.replace(/\{clientX\}/g, e.clientX);
s = s.replace(/\{clientY\}/g, e.clientY);
s = s.replace('{xpos}', dragObj.xpos);
s = s.replace('{ypos}', dragObj.ypos);
s = s.replace('{w}', dragObj.w);
s = s.replace('{h}', dragObj.h);
s = s.replace('{ClickX}', dragClickX);
s = s.replace('{ClickY}', dragClickY);
s = s.replace('{Active}', dragActive);

s = s.replace('{keyCode}', e.keyCode);
s = s.replace('{button}', e.button);
s = s.replace('{which}', e.which);
s = s.replace('{shiftKey}', e.shiftKey);
s = s.replace('{ctrlKey}', e.ctrlKey);
s = s.replace('{altKey}', e.altKey);
s = s.replace('{shiftLeft}', e.shiftLeft);
s = s.replace('{ctrlLeft}', e.ctrlLeft);
s = s.replace('{metaKey}', e.metaKey);

s = s.replace(/\{\w+\}/g, ' ');
document.getElementById('view').innerHTML = s;
document.getElementById('view').style.display = '';
}
//-->
</script>
<style type="text/css">
<!--
#squareDiv{position:absolute;left:100;top:100;width:50;height:50;clip:rect(0,50,50,0);
background-color:blue;layer-background-color:blue;}
-->
</style>
</HEAD>

<BODY onLoad="init()">
<div id="squareDiv"></div>
<div id="view" style="display:none"><table border width=400>
<tr><td>浏览器</td><td colspan=5>{appName}</td></tr>
<tr><td>事件</td><td colspan=5>{type}</td></tr>
<tr><td>节点</td><td colspan=5>{nodeName}</td></tr>
<tr><td>节点ID</td><td colspan=5>{ID}</td></tr>
<tr><td>节点name</td><td colspan=5>{name}</td></tr>
<tr><th colspan=2 width=33%>IE</th><th colspan=2 width=33%>Firefox</th><th colspan=2>Netscape</th></tr>
<tr><td>offsetX</td><td>{offsetX}</td><td>layerX</td><td>{layerX}</td><td></td><td></td></tr>
<tr><td>offsetY</td><td>{offsetY}</td><td>layerY</td><td>{layerY}</td><td></td><td></td></tr>
<tr><td>x</td><td>{x}</td><td>pagrX</td><td>{pageX}</td><td></td><td></td></tr>
<tr><td>y</td><td>{y}</td><td>pageY</td><td>{pageY}</td><td></td><td></td></tr>
<tr><td>screenX</td><td>{screenX}</td><td>screenX</td><td>{screenX}</td><td></td><td></td></tr>
<tr><td>screenY</td><td>{screenY}</td><td>screenY</td><td>{screenY}</td><td></td><td></td></tr>
<tr><td>clientX</td><td>{clientX}</td><td>clientX</td><td>{clientX}</td><td></td><td></td></tr>
<tr><td>clientY</td><td>{clientY}</td><td>clientY</td><td>{clientY}</td><td></td><td></td></tr>
<tr><td colspan=6>按键</td></tr>
<tr><td>keyCode</td><td>{keyCode}</td><td>button</td><td>{button}</td><td>which</td><td>{which}</td></tr>
<tr><td>shiftKey</td><td>{shiftKey}</td><td>ctrlKey</td><td>{ctrlKey}</td><td>altKey</td><td>{altKey}</td></tr>
<tr><td>shiftLeft</td><td>{shiftLeft}</td><td>ctrlLeft</td><td>{ctrlLeft}</td><td>metaKey</td><td>{metaKey}</td></tr>
<tr><td colspan=6>工作变量</td></tr>
<tr><td>dragObj.xpos</td><td colspan=5>{xpos}</td></tr>
<tr><td>dragObj.ypos</td><td colspan=5>{ypos}</td></tr>
<tr><td>dragObj.w</td><td colspan=5>{w}</td></tr>
<tr><td>dragObj.h</td><td colspan=5>{h}</td></tr>
<tr><td>dragClickX</td><td colspan=5>{ClickX}</td></tr>
<tr><td>dragClickY</td><td colspan=5>{ClickY}</td></tr>
<tr><td>dragActive</td><td colspan=5>{Active}</td></tr>
</table>
</div>

<pre>
这是一个跨浏览器的实现用鼠标移动层的测试脚本。欢迎测试并提出宝贵意见。

测试用浏览器版本:
Microsoft Internet Explorer 6.00.2462.0000
Mozilla/5.0 FierFox 1.0.7
Netscape 无

代码中的Netscape部分曾在Netscape 4.0中通过测试。现因手边无任何版本的Netscape浏览器,希望
使用Netscape浏览器的朋友帮忙测试并补齐信息列表部分。
FierFox部分在移动对象时使用setAttribute修改style属性,是否很蠢?应该还有别的方法吧?
</pre>
</BODY>
</HTML>
...全文
425 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyllen 2006-07-07
  • 打赏
  • 举报
回复
mark
jiangtao088 2006-06-01
  • 打赏
  • 举报
回复
mark
招RD和QA 2006-05-30
  • 打赏
  • 举报
回复
mark
gu1dai 2006-03-07
  • 打赏
  • 举报
回复
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1

没发现问题。
yopy 2005-12-02
  • 打赏
  • 举报
回复
UPUp
guo9038 2005-12-02
  • 打赏
  • 举报
回复
mark
dh20156 2005-11-25
  • 打赏
  • 举报
回复
偶写的东东都只能在IE里运行,呵呵! ^_^
cvpc 2005-11-21
  • 打赏
  • 举报
回复
挺好的,收藏研究!
xuzuning 2005-11-21
  • 打赏
  • 举报
回复
“其实修改style属性用setAttribute有什么不妥吗?不懂就别随便说别人蠢,要不就显得自己太蠢了,呵呵”

奇怪!我“说别人蠢”了吗?
代码是我写的,请你提提意见就这么难吗?
yzty 2005-11-21
  • 打赏
  • 举报
回复


---------------------------------
雨中太阳
网页:http://www.SearchAll.cn
搜索:http://www.SearchAll.cn/search/Search.htm
tigerwen01 2005-11-21
  • 打赏
  • 举报
回复
只要是按W3C标准来写一般都没问题
mindon 2005-11-21
  • 打赏
  • 举报
回复
其实修改style属性用setAttribute有什么不妥吗?不懂就别随便说别人蠢,要不就显得自己太蠢了,呵呵
孟子E章 2005-11-21
  • 打赏
  • 举报
回复
Netscape 6.0以上版本基本是按w3c来进行做的。一般mozilla里通过了Netscape6。0以上一般没问题的

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧