Cod*_*x73 -1 javascript firefox dom javascript-events
我有一个旧函数,它缺少Mozilla/Firefox的行,因此JavaScript无法正常工作.该功能跟踪鼠标坐标,以便我可以定位窗口.
如何让代码在Firefox中运行?
Xoffset = -60; // modify these values to ...
Yoffset = 20; // change the popup position.
var old, skn, iex = (document.all),
yyy = -1000;
var ns4 = document.layers
var ns6 = document.getElementById && !document.all
var ie4 = document.all
if (ns4) skn = document.dek
else if (ns6) skn = document.getElementById("dek").style
else if (ie4) skn = document.all.dek.style
if (ns4) document.captureEvents(Event.MOUSEMOVE);
else {
skn.visibility = "visible"
skn.display = "none"
}
document.onmousemove = get_mouse;
function popup(msg, bak) {
var content =
"<TABLE WIDTH=150 BORDER=1 BORDERCOLOR=black CELLPADDING=2" +
"CELLSPACING=0 " + "BGCOLOR=" + bak + "><TD ALIGN=center>" +
"<FONT COLOR=black SIZE=2>" + msg + "</FONT></TD></TABLE>";
yyy = Yoffset;
if (ns4) {
skn.document.write(content);
skn.document.close();
skn.visibility = "visible"
}
if (ns6) {
document.getElementById("dek").innerHTML = content;
skn.display = ''
}
if (ie4) {
document.all("dek").innerHTML = content;
skn.display = ''
}
}
function get_mouse(e) {
var x = (ns4 || ns6) ? event.pageX : event.x + document.body.scrollLeft;
skn.left = x + Xoffset;
var y = (ns4 || ns6) ? event.pageY : event.y + document.body.scrollTop;
if (document.documentElement && // IE6 +4.01 but no scrolling going on
!document.documentElement.scrollTop) {
y = event.y + document.documentElement.scrollTop;
}
else if (document.documentElement && // IE6 +4.01 and user has scrolled
document.documentElement.scrollTop) {
y = event.y + document.documentElement.scrollTop;
}
else if (document.body && document.body.scrollTop) { // IE5 or DTD 3.2
y = event.y + document.document.body.scrollTop;
}
skn.top = y + yyy;
}
function kill() {
yyy = -1000;
if (ns4) {
skn.visibility = "hidden";
}
else if (ns6 || ie4) skn.display = "none"
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
"事件未定义"
在IE中正常工作.
我不会发布关于如何重写代码的代码@Ivo Wetzel几乎是你需要的,但是让meg给你一些建议.
世界正在快速变化,计算机行业也在快速变化.虽然有时它没有我们想要的那么快(IE 6缓慢消失),但是没有必要支持Netscape 4.
请咨询StatCounter等网站,了解正在使用的浏览器(在您所在的国家/地区).另请参阅YUI分级浏览器支持.雅虎是互联网上最大的玩家之一,他们的网站几乎适合所有人,因此他们知道他们在谈论什么.
找一个好的DOM参考.MDC几乎是你所需要的,但是对于IE怪癖来说MSDN很好.谈论怪癖,不要忘记给QuirksMode兼容性表添加书签.
永远不要使用类似的功能ie4 = document.all,因为单个功能无法识别整个浏览器.这就像是说:"嘿,你有金发,你必须是布拉德皮特".使用特征检测.阅读以下两篇优秀文章:浏览器检测(以及要做什么)和功能检测:最先进的浏览器脚本
不要使用,document.write因为它是可怕的同步I/O. 它会阻止您的页面呈现并导致糟糕的用户体验.Web就是异步.
"同步编程是不尊重的,不应该用在人们使用的应用程序中." - 道格拉斯·克罗克福德