无聊望见了犹豫
千年狐狸
千年狐狸
  • UID3586
  • 注册日期2005-03-04
  • 最后登录2017-02-12
  • 发帖数1679
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3152回复:8

问一个JS代码出错的问题,请高手解答

楼主#
更多 发布于:2005-03-08 10:00
偶不是开发人员,对这些JS代码一窍不通,但有时候就是喜欢瞎点着看看

偶在访问某论坛的时候,无意中点了tools中的JavaScript Console,

发现出现了多处错误,错误显示:Error:Event is not defined.
出错文件为:http://www.69699.org/include/commom.js
出错的行为17行和49行
有没有懂得呀?帮俺解释一下是为什么?

我用红色标记出处错误行的内容:
/******************************************************************************
  Crossday Discuz! Board - Common Modules for Discuz!
  Copyright 2001-2005 Comsenz Technology Ltd (http://www.comsenz.com)
*******************************************************************************/

var sPop = null;
var postSubmited = false;

document.write("<style type='text/css'id='defaultPopStyle'>");
document.write(".cPopText { font-family: Tahoma, Verdana; background-color: #FFFFCC; border: 1px #000000 solid; font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; visibility: hidden; filter: Alpha(Opacity=80)}");

document.write("</style>");
document.write("<div id='popLayer' style='position:absolute;z-index:1000' class='cPopText'></div>");


function showpopuptext() {
var o=event.srcElement;
MouseX=event.x;
MouseY=event.y;
if(o.alt!=null && o.alt!="") { o.pop=o.alt;o.alt="" }
        if(o.title!=null && o.title!="") { o.pop=o.title;o.title="" }
if(o.pop!=sPop) {
sPop=o.pop;
if(sPop==null || sPop=="") {
popLayer.style.visibility="hidden";
} else {
if(o.dyclass!=null) popStyle=o.dyclass
else popStyle="cPopText";
popLayer.style.visibility="visible";
showit();
}
}
}

function showit() {
popLayer.className=popStyle;
popLayer.innerHTML=sPop.replace(/<(.*)>/g,"&$1&").replace(/\n/g,"<br>");;
popWidth=popLayer.clientWidth;
popHeight=popLayer.clientHeight;
if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
else popLeftAdjust=0;
if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
else popTopAdjust=0;
popLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust;
popLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust;
}

function ctlent(obj) {
if(postSubmited == false && (event.ctrlKey && window.event.keyCode == 13) || (event.altKey && window.event.keyCode == 83)) {
if(this.document.input.pmsubmit) {
postSubmited = true;
this.document.input.pmsubmit.disabled = true;
this.document.input.submit();
} else if(validate(this.document.input)) {
postSubmited = true;
if(this.document.input.topicsubmit) this.document.input.topicsubmit.disabled = true;
if(this.document.input.replysubmit) this.document.input.replysubmit.disabled = true;
if(this.document.input.editsubmit) this.document.input.editsubmit.disabled = true;
this.document.input.submit();
}
}
}

function checkall(form, prefix, checkall) {
var checkall = checkall ? checkall : 'chkall';
for(var i = 0; i < form.elements.length; i++) {
var e = form.elements;
if(e.name != checkall && (!prefix || (prefix && e.name.match(prefix)))) {
e.checked = form.elements(checkall).checked;;
}
}
}

function findobj(n, d) {
var p, i, x;
if(!d) d = document;
if((p = n.indexOf("?"))>0 && parent.frames.length) {
d = parent.frames[n.substring(p + 1)].document;
n = n.substring(0, p);
}
if(x != d[n] && d.all) x = d.all[n];
for(i = 0; !x && i < d.forms.length; i++) x = d.forms[n];
for(i = 0; !x && d.layers && i < d.layers.length; i++) x = findobj(n, d.layers.document);
if(!x && document.getElementById) x = document.getElementById(n);
return x;
}


function copycode(obj) {
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}

function toggle_collapse(objname) {
obj = findobj(objname);
img = findobj(objname+"_img");
collapsed = getcookie("discuz_collapse");
cookie_start = collapsed ? collapsed.indexOf(objname) : -1;
cookie_end = cookie_start + objname.length + 1;

if(obj.style.display == "none") {
obj.style.display = "";
img_re = new RegExp("_yes\\.gif$");
img.src = img.src.replace(img_re, '_no.gif');
if(cookie_start != -1) collapsed = collapsed.substring(0, cookie_start) + collapsed.substring(cookie_end, collapsed.length);
} else {
obj.style.display = "none";
img_re = new RegExp("_no\\.gif$");
img.src = img.src.replace(img_re, '_yes.gif');
if(cookie_start == -1) collapsed = collapsed + objname + " ";
}

expires = new Date();
expires.setTime(expires.getTime() + (collapsed ? 86400 * 30 : -(86400 * 30 * 1000)));
document.cookie = "discuz_collapse=" + escape(collapsed) + "; expires=" + expires.toGMTString() + "; path=/";
}

function imgzoom(o){
if(event.ctrlKey) {
var zoom = parseInt(o.style.zoom, 10) || 100;
zoom -= event.wheelDelta / 12;
if(zoom > 0) {
o.style.zoom = zoom + '%';
}
return false;
} else {
return true;
}
}

function getcookie(name) {
var cookie_start = document.cookie.indexOf(name);
var cookie_end = document.cookie.indexOf(";", cookie_start);
return cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
}

document.onmouseover=showpopuptext;
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2025-04-18
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
1楼#
发布于:2005-03-08 10:00
event 变量是IE自创的。我不是JS高手,只是以前翻了下Javascript手册,被这个变量困扰。
viewtheard
千年狐狸
千年狐狸
  • UID2383
  • 注册日期2005-01-20
  • 最后登录2025-04-29
  • 发帖数2051
  • 经验567枚
  • 威望1点
  • 贡献值432点
  • 好评度24点
  • 社区居民
  • 忠实会员
2楼#
发布于:2005-03-08 10:00
是微软专用的java脚本,似乎是这样就既能防止用户重点发帖按钮,又能阻止重按Ctrl+Enter了,,总会说postSubmited未定义,导致无法用ctrl+enter发帖了,问题应该出在common.js文件修改上
My Technical Blog: http://art-technical.blogspot.com/
fiag
管理员
管理员
  • UID1188
  • 注册日期2004-12-21
  • 最后登录2025-04-18
  • 发帖数4681
  • 经验686枚
  • 威望0点
  • 贡献值402点
  • 好评度51点
3楼#
发布于:2005-03-08 10:00
后面是防止重复发帖,前面是用于显示提示信息,获取鼠标事件元素的位置。
viewtheard
千年狐狸
千年狐狸
  • UID2383
  • 注册日期2005-01-20
  • 最后登录2025-04-29
  • 发帖数2051
  • 经验567枚
  • 威望1点
  • 贡献值432点
  • 好评度24点
  • 社区居民
  • 忠实会员
4楼#
发布于:2005-03-08 10:00
楼主浏览的是discuz!论坛?
My Technical Blog: http://art-technical.blogspot.com/
无聊望见了犹豫
千年狐狸
千年狐狸
  • UID3586
  • 注册日期2005-03-04
  • 最后登录2017-02-12
  • 发帖数1679
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2005-03-08 10:00
viewtheard:楼主浏览的是discuz!论坛?回到原帖

是啊,现在好多论坛都用Discuz的东西,并且连默认界面都不改,
搞的千坛一面
无聊望见了犹豫
千年狐狸
千年狐狸
  • UID3586
  • 注册日期2005-03-04
  • 最后登录2017-02-12
  • 发帖数1679
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2005-03-08 10:00
viewtheard:是微软专用的java脚本,似乎是这样就既能防止用户重点发帖按钮,又能阻止重按Ctrl+Enter了,,总会说postSubmited未定义,导致无法用ctrl+enter发帖了,问题应该出在common.js文件修改上回到原帖


谢谢楼上各位解答,看来又是微软专用搞的鬼

好在这两条没什么用处,不过总是一堆错误信息看起来讨厌
sakerping
火狐狸
火狐狸
  • UID3677
  • 注册日期2005-03-06
  • 最后登录2005-11-16
  • 发帖数198
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2005-03-08 10:00
我觉得discuz挺好的嘛。我喜欢简洁清楚的论坛,如果是mozilla.org.cn那种是我最讨厌的。
无聊望见了犹豫
千年狐狸
千年狐狸
  • UID3586
  • 注册日期2005-03-04
  • 最后登录2017-02-12
  • 发帖数1679
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2005-03-08 10:00
sakerping:我觉得discuz挺好的嘛。我喜欢简洁清楚的论坛,如果是mozilla.org.cn那种是我最讨厌的。回到原帖


木有说Discuz不好呀,是那些论坛的管理员太懒了,拿来就用,也不说个性化一下界面,搞得好象走到哪里看到的都是同一个论坛

8过Discuz确实要在兼容性上改进一下,发帖子的时候的色彩格式定义的JS就不符合W3C,我只能用手工来定义他的代码来控制格式。
游客

返回顶部