Posted by bianbian on 2008-04-07 01:28
本文Tags: BBS, Firefox, IE, JavaScript, 脚本
最近发现个别网友访问小百合BBS会出现如下提示:
见到此文字可能是由于浏览器禁用了活动脚本或者脚本有误
请启用脚本支持后刷新本页;若仍有问题,请点击这里提问
原理:使用Javascript动态输出框架结构(好处是能缓存静态化网页,区别guest用户和登录用户)。因此,一旦这步出现错误,框架结构未建立成功,那么就会显示body里的提示内容。
原因:
(1)浏览器版本不支持。目前小百合BBS支持IE5.5(不保证全部功能有效),完美支持IE6+、Firefox 2.0+、Opera 9+等。如果您的浏览器不在此列,并且测试正常,欢迎反馈。
(2)浏览器脚本引擎未启用。您可以点击这里测试:如果能弹出“脚本启用”,那说明这项没有问题;否则,请修改设置如下:
Firefox:
IE:
(3)脚本有误。可能性不是很大,除非刚好碰到更新的脚本确实存在错误。基本上我都会测试以后才放上去。不过万一你怀疑是这个问题,可以telnet方式到sysop版看看,如果其他人都没问题那基本就只是您的问题了。
(4)浏览器缓存内的脚本版本过旧。因为浏览器缓存脚本文件(这样不需要每次都下载,加快速度),如果服务器端已经更新了脚本文件,而您的浏览器缓存因为各种原因没有更新,可能也会导致这个问题。请清空浏览器缓存后刷新测试:
Firefox:
IE:
(5)校内用户访问BBS请关闭代理服务器。
(6)浏览器或系统部分DLL(动态链接库)功能因为病毒或木马的原因失效(Windows系统),请点此下载修复程序,保存后运行,然后重新打开浏览器测试。
如果还有问题,请留言将您的操作系统、浏览器(基本是IE出问题)及版本、杀毒软件等告知。另外推荐使用Firefox:
标签:
BBS,
Firefox,
IE,
JavaScript,
脚本遵守创作共用协议,转载请链接形式注明来自
http://bianbian.org 做人要厚道
相关日志
Posted in JavaScript, Technology | 36 Comments »
Posted by bianbian on 2008-04-06 01:36
本文Tags: AJAX, Firefox, JavaScript, XMLHttpRequest, 二进制, 数据
译者注:原来想用JS直接处理C丢过来的struct数据,具体可以查看:[原] C的struct和JSON交互。
经过千辛万苦的查找,找到了这篇文章(作者应该比我更辛苦):Downloading Binary Streams with Javascript XMLHttpRequest
把关键点翻译如下(不过我还没有测试):
利用XMLHttpRequest的overrideMimeType方法设置charset为x-user-defined。
- //fetches BINARY FILES synchronously using XMLHttpRequest
- load_url = function(url) {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
- var req = new XMLHttpRequest();
- req.open('GET',url,false);
- //XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
- req.overrideMimeType('text/plain; charset=x-user-defined');
- req.send(null);
- if (req.status != 200) return '';
- return req.responseText;
- }
-
- var filestream = load_url(url);
- var abyte = filestream.charCodeAt(x) & 0xff;
IE不支持overrideMimeType方法,不过有评论者说VBScript可以实现:
- Dim xhr
- Set xhr = CreateObject("Microsoft.XMLHTTP")
- xhr.Open "GET", "folder.bin", False
- xhr.setRequestHeader "Accept-Charset", "x-user-defined"
- xhr.setRequestHeader "Content-Type", "application/pdf"
- xhr.send Null
标签:
AJAX,
Firefox,
JavaScript,
XMLHttpRequest,
二进制,
数据遵守创作共用协议,转载请链接形式注明来自
http://bianbian.org 做人要厚道
相关日志
Posted in JavaScript, Technology | No Comments »
Posted by bianbian on 2008-03-31 10:09
本文Tags: Firefox, IE, Mouse, Wheel, 滚轮, 鼠标
滚轮IE和Firefox的代码不一样:
IE是mousewheel事件,Firefox是DOMMouseScroll事件
事件属性,IE是event.wheelDelta,Firefox是event.detail
属性的方向值也不一样,IE向上滚 > 0,Firefox向下滚 > 0
- //滚轮放大或缩小,基于Prototype 1.6
- var scrollfunc = function(event) {
- var direct = 0;
- if (event.wheelDelta) {
- direct = event.wheelDelta > 0 ? 1 : -1;
- } else if (event.detail) {
- direct = event.detail < 0 ? 1 : -1;
- }
- zoom(direct);
- };
- Event.observe(document, 'mousewheel', scrollfunc);
- Event.observe(document, 'DOMMouseScroll', scrollfunc); //firefox
标签:
Firefox,
IE,
Mouse,
Wheel,
滚轮,
鼠标遵守创作共用协议,转载请链接形式注明来自
http://bianbian.org 做人要厚道
相关日志
Posted in JavaScript, Technology | No Comments »
Posted by bianbian on 2006-09-07 06:25
本文Tags: childNodes, Firefox, IE
一个问题困扰我,涉及到firstChild和lastChild的代码工作不正常。为了简单,我把问题抽象到下面这个代码,你猜点击按钮后的结果是什么?
- <html><body>
- <UL id="main">
- <LI>1</LI>
- <LI>2</LI>
- </UL>
- <input type=button value="click me!"
- onclick="alert(document.getElementById('main').childNodes.length)">
- </body></html>
呵呵,在IE里提示2,在Firefox里提示5,这是怎么回事呢?UL下明明只有两个子节点,Firefox为什么提示5个子节点呢?通过查看IE和firefox的DOM结构,发现了问题的所在:
IE:
Firefox:
你也应该发现了吧?“#text”表示文本(实际是无意义的空格和换行等)在Firefox里也会被解析成一个节点,在IE里只有有实际意义的文本才会解析成“#text”。所以对firefox而言,上例中UL的fistChild并不是第一个LI,而是#text(UL和第一个LI之间的无意义文本),lastChild也并不是最后一个LI,而是最后一个LI和/UL之间的无意义文本。
解决办法是先用 .getElementsByTagName(”LI”) 得到所有LI的节点。我觉得firefox这样处理比较令程序员头痛,也没有必要。
标签:
childNodes,
Firefox,
IE遵守创作共用协议,转载请链接形式注明来自
http://bianbian.org 做人要厚道
相关日志
Posted in JavaScript, Technology | 4 Comments »