图中后面的门口电子电脑屏幕字后面有阴影上是什么字

一波传奇巨星相继退役,科比、邓肯的离去,让如今的NBA赛场少了一份当年的滋味,当另...
无论对于开发者还是用户来说,在 App Store 里搜不到自己需要的应用都是非常让人郁闷...
拿起背包来一场说走就走的旅行?十一黄金周来临之际,各位朋友又给自己的假期做了什么...
包含有中国澳门、马其顿共和国、马来西亚、黑山共和国、土耳其和南非,上述六个地区将...
十一长假总算是盼来了,小编和许多人一样已经收拾好行囊准备朝着理想的目的地进发,然...
不管怎么说,苹果的这项移动支付服务将会在未来的几个月内进入另一个新的市场。
不过供应商也要小心,苹果对屏幕的要求是格外严格的,一言不合就可能退货。
苹果将把眼球追踪新专利应用于 PC,甚至是苹果未来推出的电视上,此技术也有望成为苹...
今天要说的这款游戏《Disco Party》是以 Disco 为内容的作品,可能你会下意识地认为这...
科技除了对人们的生活起到非常重要的作用之外,在军事领域的应用也同样是非常重要的。
早在2014年,游戏开发商 ColePowered 就曾经公布了《Concrete Jungle》(水泥丛林)这...
这款作品采用了简单又不失唯美的油画风格,草草几笔就能够将场景描绘到位,不愧是场景...
此前用《乌鸦森林之谜》、《恐怖传奇》等一系列冒险解谜类作品打响名号的游戏开发商 A...
《象限清单》是一款非常简单的免费待办事项 App,简单到 App 全程只有三个用户操作,...
《心潮减压》能够通过检测你的生理数据,找到更有效的方法帮助你快速减压、调节情绪。
因为 iPhone 7 只有一个 Lightning 接口,因此充电线缆和 EarPods 很难同时使用。
看过用了 W1 芯片的 Beats Solo 评测之后更加期待 AirPods 了!
苹果在新款 iPhone 7 系列手机中取消了传统的 3.5mm 耳机插孔,但是仍有不少苹果粉丝...
虽然 iPhone 本身也可以通过应用进行录音,但是很多需要录音的时刻并不会等着我们打开...
相信随着智能家居渐渐走入更多人的家庭里,肯定会有更多设备支持HomeKit。
随着苹果对Apple Watch进行更新,越来越多的配件生产商也开始带来其首款Apple Watch表...
不知道他们的履历能不能为自己带来额外的收益?
苹果自然是不推荐这样做,不过实际上这款产品还是有一定防水能力。
epub中的背景图片怎么在手机阅读中铺满屏幕?
注册时间 最后登录
在线时间38 小时 UID
主题帖子人气
青苹果, 积分 133, 距离下一级还需 67 积分
参考了论坛田戈大神制作的《异侠》,尝试制作了一个epub,差不多完成之后发现在手机阅读中的背景图片是不能铺满阅读的界面的,又试了一下田戈大神制作的《异侠》也是这样的。我在电脑解压单独打开网页是无问题的,可在手机阅读中就会这样!我的是苹果4,使用多看阅读!
是机型较久的原因吗?
望有大神路过解答!
电脑上的显示效果:
_164842.jpg (306.12 KB, )
17:01 上传
手机上的效果:
IMG_536.jpg (176.07 KB, )
17:05 上传
IMG_558.jpg (157.75 KB, )
17:05 上传
注册时间 最后登录
在线时间1126 小时 UID
主题帖子人气
你电脑用什么软件看的?还是在多看阅读的网页里看的?
天戈大大制作的《寻秦记》我用手机看也是这样,不知道为什么
注册时间 最后登录
在线时间408 小时 UID
主题帖子人气
我的老家就住在这个屯··我是这个屯里土生土长的人!
注册时间 最后登录
在线时间1375 小时 UID
主题帖子人气
&body style=&background-image:url(图片相对路径);background-repeat:&&
上面这段改成下面试试
&body style=&background-image:url(图片相对路径);background-size:100%;background-repeat:no-&&
想要精排的请自己排;
想要精校的请自己校;
不想动手的请自己买;
既不想花时间又不想花钱的请闭嘴。
注册时间 最后登录
在线时间38 小时 UID
主题帖子人气
上面这段改成下面试试
已解决,感谢解答了!
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!2925人阅读
S5PV210(23)
看着高手们写的SD卡读fat32或fat的程序。动辄数百行,模块强大,功能丰富。近似完美,通用性强,但看着也眼花缭乱的,让新手无从下手。
玩tft彩屏和sd卡的目的之一就是把sd卡中的图片显示到彩屏上。
这有个简单的办法找到fat32文件系统中的图片依次显示在彩屏上。
sd卡驱动和彩屏驱动这里不涉及。就拿240*320的tft彩屏和1G的sd卡为例。
fat32文件系统和bmp格式的资料网上屎一样多。对照文件的hex值很容易研究明白
读fat32的简单规律就是先从根目录出发。找到bmp和相关字眼,记下第一簇位置。然后读fat表。找到第一簇,和下一簇簇号。把当前簇的几个扇区的内容写在屏幕上。然后循环几次找到其余簇就把全部图片显示出来。至于循环次数可以图片的用字节大小计算。
我这里SD卡中第一fat表是第36扇区,根目录是第3904扇区,每簇8扇区。可以从分区头文件中读出来。为了方便我就在下面直接写数值了。
/////////////////////////////下面的函数是显示图片第一簇的,因为bmp文件第一簇第一扇区有一些文件信息。要跳过,不予显示。当然你也可以写函数读出来。
writefirst(unsigned int kk)//显示第一簇,kk为扇区号,去掉头信息
& & & & unsigned int m,j;
& & & & unsigned char tp1,tp2,tp3,k;
& & & & SD_Read_Sector(kk,buf);
& & & & for(j=27;j&=255;j++)&&//第一扇区中的第一像素从第54字节开始,前面的是文件信息。因此此扇区单独处理
& & & & & & & & tp2=buf[2*j+1];//读第2*j像素高字节
& & & & & & & & tp1=buf[2*j];//读第2*j像素低字节& & & &&
& & & & & & & & m=(tp2&&8)|tp1;
& & & & & & & && &&&tp3=m&0b11111;
& & & & & & & & m=((m&0b0000)&&1)|(tp3);//把555格式转换成565格式,m为565格式的一个像素值。
& & & & & & & & writedata(m);//这是往tft写像素点的函数,在别处定义。
& & & & for(k=1;k&8;k++)//其余7个扇区全部写入。
& & & & & & & & SD_Read_Sector(kk+k,buf);
& & & & & & & & for(j=0;j&=255;j++)
& & & & & & & & {
& & & & & & & & & & & & tp2=buf[2*j+1];//同上
& & & & & & & & & & & & tp1=buf[2*j];//& & & & & & & & & & & &&
& & & & & & & & & & & & m=(tp2&&8)|tp1;
& & & & & & & & & & & & tp3=m&0b11111;
& & & & & & & & & & & & m=((m&0b0000)&&1)|(tp3);//同上
& & & & & & & & & & & & writedata(m);
& & & & & & & & }
//////////////////////////////////下面的函数是写正常簇的(除了第一簇)。一个簇8个扇区全写入,原理同上
writecu(unsigned int kk)//显示一簇,kk为扇区号
& & & & unsigned int m,j;
& & & & unsigned char tp1,tp2,tp3,k;
& & & & for(k=0;k&8;k++)
& & & & & & & & SD_Read_Sector(kk+k,buf);
& & & & & & & & for(j=0;j&=255;j++)
& & & & & & & & {
& & & & & & & & & & & & tp2=buf[2*j+1];
& & & & & & & & & & & & tp1=buf[2*j];
& & & & & & & & & & & & m=(tp2&&8)|tp1;
& & & & & & & && && && &&&tp3=m&0b11111;
& & & & & & & & & & & & m=((m&0b0000)&&1)|(tp3);
& & & & & & & & & & & & writedata(m);
& & & & & & & & }
/////////////////////////主要部分//////////////////tp1到tp6为uchar,其余为uint。buf为512字节的缓冲区(全局变量)。
////////////////////void SD_Read_Sector(扇区数,缓冲数组)&&为sd卡读扇区的函数。应位于sd读写模块中。
fatcunum=0;//一个全局变量,表示当前是fat表中第几簇。
for(n1=0;n1&8;n1++)//依次读根目录中的8个扇区,虽然fat32不限制文件数量,这里不考虑(偷懒,但不是直接读第九个扇区)。
& & & & SD_Read_Sector(,buf);//读根目录的第n1扇区,从第3904扇区开始
& & & & for(n2=0;n2&16;n2++)//把一个簇分成16块,在相应位置查找关键字。(把sd卡格式化,保存几个文件,找找规律就明白了)
& & & & & & & & tp1=buf[n2*32+8];
& & & & & & & & tp2=buf[n2*32+9];
& & & & & & & & tp3=buf[n2*32];//文件名首字节
& & & & & & & & tp4=buf[n2*32+29];
& & & & & & & & tp5=buf[n2*32+30];
& & & & & & & & if((tp1==0x42)&&(tp2==0x4d)&&(tp3!=0xe5)&&(tp4==0x58)&&(tp5==0x02))
///////////////////////查找root中的bmp字样和文件大小字样,我这里查找&B&,&M&,&0xe5&,“0x58”,“0x02”这几个字样,
//////////////////////符合要求的图片大小一定是0x25836字节或者0x25838字节。文件名首字节如果是0xE5表示已删除,如果全部满足条件,开始读取文件。
& & & & & & & & {& & & &&
& & & & & & & & & & & & addset(0,0,239,319);//这是在定义tft中的显示区域,应在显示模块中定义。
& & & & & & & & & & & & cu=(buf[n2*32+27]&&8)|buf[n2*32+26];//记下文件第一簇簇号,一共有4个字节,在此只读取后两字节。(偷懒呗,一般用不到那么多)
& & & & & & & & & & & & fatcunum=cu/0x80;//每扇区有0x80个簇号,fatcunum表示下一个簇号位于fat表的第几簇,全局变量
& & & & & & & & & & & & SD_Read_Sector(36+fatcunum,buf);//读下一簇号指向的的fat表的簇
& & & & & & & & & & & & writefirst((cu-3)*8+3912);//写第一簇的数据(赋值为扇区号),这是刚才上面定义的函数。文件的第一簇簇号为3,所以需要减去。8表示每簇8扇区。3912为数据区的第一扇区。
& & & & & & & & & & & & for(tp6=0;tp6&37;tp6++)//为什么循环37次后面解释。
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & SD_Read_Sector(36+fatcunum,buf);//一定再次读fat表(刚才的操作把buf中的数改了)& & & & & & & &&
& & & & & & & & & & & & & & & & nextcu=(buf[(cu-(fatcunum*0x80))*4+1]&&8)|buf[(cu-(fatcunum*0x80))*4];//下一簇簇号
& & & & & & & & & & & & & & & & fatcunum=nextcu/0x80;//算出下一簇号位于fat表的第几簇
& & & & & & & & & & & & & & & & writecu((nextcu-3)*8+3912);//写其余扇区的数据,刚才上面定义的。
& & & & & & & & & & & & & & & & cu=
& & & & & & & & & & & & & & & & SD_Read_Sector(36+fatcunum,buf);//一定再读fat表
& & & & & & & & & & & & }
& & & & & & & & }& & & & & & & & & & & &&
& & & & SD_Read_Sector(,buf);//一定再读根目录。刚才的操作可能改buf中的数据。
为什么循环37次,因为一个符合要求的16位的240×320的bmp图片大小一定是0x25836字节或者0x25838字节。以0x25836为例。
转成十进制就是153654字节,以本程序为例,每簇8扇区。2÷8=37.51,就是说占了37个半簇,第一簇特殊处理。还剩下36.5簇。因此这里循环37次,当然最后的一个簇的不完整会导致显示有问题,通过观察只是屏幕最左侧或者最右侧有一两条线异常。无伤大雅。如果你不嫌麻烦就写个处理结尾簇的函数。
这就完事了。通过观察,8M晶振,显示完整每幅图片需要1.5秒,是连续显示。如果你需要按键操作的话自己加个标志位。
这个方法仅针对显示240×320的16位bmp图片,不能直接移植到其它用途。因为写的太简单了,漏洞百出。高手勿喷。入门比较不错。
下图以我用的卡为例。
原文地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1723546次
积分:22395
积分:22395
排名:第221名
原创:457篇
转载:200篇
评论:858条
(1)(1)(9)(9)(6)(6)(6)(1)(1)(3)(4)(7)(1)(3)(10)(3)(3)(7)(3)(6)(7)(10)(9)(13)(21)(10)(8)(5)(6)(8)(10)(4)(3)(6)(5)(11)(10)(28)(26)(54)(28)(34)(30)(64)(17)(23)(115)(8)后使用快捷导航没有帐号?
查看: 3953|回复: 4
在OLED屏上显示汉字、字符、图片
在线时间809 小时
威望279 分
芯币763 枚
E金币542 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 279, 距离下一级还需 221 积分
一粒金砂(高级), 积分 279, 距离下一级还需 221 积分
本帖最后由 人民币的幻想 于
09:25 编辑
最近几天在DIY MP3播放器这个东西,说来其实很简单,去年就做好了。只不过当初是通过1602液晶显示一些简单的东西,歌曲名字还有很多相关信息没法显示。言归正传,这回打算用OLED屏试试看,经实践,显示效果帮帮哒~~。首先先说一下所用方案:MCU用的STM32F103RBT6,OLED用的SSD1306控制的,MCU和屏是通过硬件SPI通信的。具体底层实现请看我曾经发过的一篇帖子。SD卡采用硬件SPI+DMA方式驱动,底层驱动移植自振南的SD卡驱动。字符和数字显示很简单,用的取模软件直接取得,毕竟数量不多,占用体积也不大,相对128K的ROM来说够了。我是用的PCtoLCD2002完美版取得模,点阵采样阴码-列行式-逆向-C51格式。当然还可以自己选择自己喜欢字体大小和格式,就不再多说了。显示原理是这样的:假设以8*8大小某字符为例,占用8*8=64个bits,占用64/8=8Bytes,其他格式请自己推算,列行式即先扫一列在扫下一列,扫完这一行再扫下一行(假设有的话)。至于为什么选择阴码,我用的OLED屏手册上有这样一句话 Display Mode: Passive Matrix,即共阴点阵。大家应该都用过数码管,有共阴和共阳之分,此处原理相同。逆向是低位在前高位在后,即先取低位再取高位。取模原理大致就是这样。显示是某些像素点的显示与不显示,我们把一个字符的8个字节依次取出,通过SPI送屏显示,这样,一个字符就得到显示。图片显示同字符显示,如果想显示到LCD屏上,就需要一些办法了,首先用画图板打开某张图片,然后调整分辨率为水平128,垂直64。并且保存为单色位图格式。然后用PCtoLCD软件打开图片,然后生成字模就好了。以下同字符显示。至于汉字显示就比较复杂,为什么复杂,拿常见的16*16点阵大小的汉字举例,一个汉字占用256bits=32Bytes,想制作MP3,那么长名文件名显示是绕不开的,因此汉字规模按8000算,共占用000Bytes=250.98KB,以单片机的存储空间是放不下的,即使换用更大存储空间的单片机比如1M flashROM,那么24*24点阵的汉字占用562.5KB空间,再加上GBKUNI互转表,那么可供利用的ROM空间就很小了。所以把这些点阵放到一个空间很大又不贵的存储介质中去,不失为一个很好的办法,基于此,我用的SD卡存放这几个文件,分别是12字体,16字体,24字体,GBK转UNI互转表,UNI转GBK互转表。这些是显示汉字及长名所必须的文件。存储的问题解决了,那么怎么找到哪个汉字对应哪些字节的点阵数据呢?这就要稍微了解一下汉字在计算机内表示的知识了,我们知道,由于直接存放点阵太大,所以在计算机内部是利用区位码来存放汉字的,关于这个区位码,我们国家发布了一些标准,当然,在MP3播放器中用到的是简体中文,而且可能出现一些不太常见的汉字,因此我利用GBK标准达到了显示这些汉字的效果。每个GBK码由2个字节组成,第一个字节为0X81~0XFE,第二个字节分为两部分,一是0X40~0X7E,二是0X80~0XFE。其中与GB2312相同的区域,字完全相同。我们把第一个字节代表的意义称为区,那么GBK里面总共有126个区(0XFE-0X81+1),每个区内有190个汉字(0XFE-0X80+0X7E-0X40+2),总共就有126*190=23940个汉字。我们的点阵库只要按照这个编码规则从0X8140开始,逐一建立,每个区的点阵大小为每个汉字所用的字节数*190。这样,我们就可以得到在这个字库里面定位汉字的方法: 当GBKL&0X7F时:Hp=((GBKH-0x81)*190+GBKL-0X40)*(size); 当GBKL&0X80时:Hp=((GBKH-0x81)*190+GBKL-0X41)*(size); 其中GBKH、GBKL分别代表GBK的第一个字节和第二个字节(也就是高位和低位),size代表一个汉字点阵规模大小,Hp则为对应汉字点阵数据在字库里面的起始地址(假设是从0开始存放)。这样我们只要得到了汉字的GBK码,就可以显示这个汉字了。从而实现汉字在液晶上的显示。说到底,我们知道汉字点阵在哪放,怎么找到某个汉字对应偏移,那么怎么读取数据送到屏幕来呢,接下来就需要一些文件系统的知识了。。。。。。(省略1w字)。当然,也可以不用去了解,用现成的文件系统数据读取函数直接去定位文件位置,读取相应大小数据就好了。这里我用的是znFAT V11.21,实践看来,用起来很不错,移植到你的CPU平台也很简单。这样,就得到显示一个汉字到OLED屏的效果了,为了显示一个汉字,我们不得不去了解文件系统,了解字库中汉字表示,计算偏移量,定位数据,读取数据,处理,送显示。这里就完成了整个汉字、字符、图片的显示原理及实践,在腊月二十九终于做好了,等待回学校有网时发出。以下附上参考资料若干,有愿意一起折腾的朋友可以参考帮助改进,一起努力学习。STM32开发指南V1.0库函数版本。(汉字显示章节)SSD1306数据手册。嵌入式FAT32文件系统设计与实现-基于振南znFAT(上册)。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
&&&&&&&&&&
在线时间144 小时
威望3435 分
芯币1028 枚
TA的帖子TA的资源
lz前面一大堆文字 要是能分下段落就 可读性好多了
要不然能持续看完的坛友不多
好的,这个是以前写好的,直接复制过来的&
每天进步一点点
在线时间809 小时
威望279 分
芯币763 枚
E金币542 枚
TA的帖子TA的资源
一粒金砂(高级), 积分 279, 距离下一级还需 221 积分
一粒金砂(高级), 积分 279, 距离下一级还需 221 积分
lz前面一大堆文字 要是能分下段落就 可读性好多了
要不然能持续看完的坛友不多
好的,这个是以前写好的,直接复制过来的
作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
在线时间2 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
你的这个程序能不能显示别的bmp图片& &如果能应该怎么取模 (取模时应该怎么调那个取模软件)急需谢谢
在线时间2 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
一粒金砂(中级), 积分 8, 距离下一级还需 192 积分
分辨率为128*64&&我想显示像素为128*64的bmp图片用你的这个函数应该怎么改?急需
Powered by
逛了这许久,何不进去瞧瞧?keywords = ret[0].substring(ret[0].indexOf('[') + 1, ret[0].lastIndexOf(']'));
if (keywords)
keywords = keywords.split(", ");
keywords = [];
var si = 1;
if (revsd > 1) si = 2;
var reth = handlelines(ret[si], 0, keywords, si);
hh += reth[0];
hasWeb = reth[2];
reth = handlelines(ret[3 - si], reth[1], keywords, 3 - si);
hh += reth[0];
tlines = reth[1];
hh = hh.replace(/undefined/g, "");
hh += '搜狗智能提示';
if (sug$("sugmaindivname")) {
sug$("sugmaindivname").innerHTML =
if (tlines == 0 && keywords.length > 0)
if (sug$("sugmaindivname").style.display == "none")
pingBack("show_s");
sug$("sugmaindivname").style.display = "block";
if (sug$('suggimg2'))
sug$('suggimg2').src = sug$('suggimg2').src.replace('down', 'up');
if (needIfm) {
sug$('inthefront').style.height = iframeHeight + "px";
sug$('inthefront').style.display = "block";
this.handleContent = handleC
this.revs = function (th) {
if (revsd == 1)
revsd = 2;
revsd = 1;
handleContent(oldresult);
function getContent(keyword, showspace) {
//if !web return
if (globalsearchformaction.indexOf("") == -1)
if ($sForm.w)
$sForm.w.value = normalRid || 0;
if (SugPara['enableSug'] && enableSug) {
if ((!showspace) && (keyword == "")) {
SugPara['isSug'] =
if (oqy.replace(/\s/g, "").replace(/ /g, "") && (oqy == keyword)) {
if (oldresult)
handleContent(oldresult);
SugPara['isSug'] =
if (xmlhttp1) {
xmlhttp1.destroy();
} catch (e) {
xmlhttp1 =
var newStrComment = encodeURIComponent(keyword);
var domain = SugPara['domain'] || "w.";
var url = "http://" + domain + "/sugg/suggestajaj.jsp?key=" + newStrComment + "&type=" + sugType + "&pr=" + (SugPara['productId'] || sugType);
var tt = new Date().getTime();
if (newStrComment.replace(/\s/g, "").replace(/ /g, "") == "")
url += "&rd=" +
xmlhttp1 = new sAjaj(url);
SugPara['isSug'] =
oqy = "uaofwequroasjdklf";
this.getContent = getC
//click one
function cc(ss, aobj) {
aobj.href += "&_ast=" + Math.round(new Date().getTime() / 1000);
document.oncontextmenu =
var hh = sug$(inputid);
var tmp = "";
var cobj = sug$("keyword" + ss);
tmp = cobj.getAttribute("keys").toLowerCase();
hh.value =
hh.focus();
SugPara['isSug'] =
if (clickWeb(cobj) == "")
pingBack('sb');
SugPara['isSug'] =
function clickWeb(cobj) {
var web = "";
web = cobj.getAttribute("web");
if (web) {
cline = 0;
pingBack("c_nav");
return "";
function kb(s) {
var x = 0;
var y = 0;
while (s) {
x += s.offsetL
y += s.offsetT
s = s.offsetP
return [x, y];
this.ovo = function (cur) {
for (var i = 0; i < i++) {
if (i == cur) {
sug$("keyword" + i).style.background = "#F1F1F1";
sug$("keyword" + i).style.background = "#ffffff";
function sdf(ev) {
ev = ev || window.
if (ev.preventDefault)
ev.preventDefault();
ev.returnValue =
if (ev.stopPropagation)
ev.stopPropagation();
ev.cancelBubble =
function press(ev) {
if (!SugPara['enableSug'])
ev = ev || window.
if ((ev.keyCode == 9) || (ev.keyCode == 38) || (ev.keyCode == 40))
bak = sug$(inputid).
if (ev.keyCode == 13 && submited) {
submited =
if (sug$(inputid).value == "")
enableSug =
getContent(sug$(inputid).value, false);
function onlyNum(ev) {
ev = ev || window.
if (ev.keyCode == 13) {
submited =
if (!SugPara['enableSug'])
if (!enableSug)
if (!sug$("sugmaindivname"))
if (sug$("sugmaindivname").style.display == 'none')
var clineO
if (ev.keyCode == 40 || ev.keyCode == 9) // key = down or key = tab
if (cline = 0) {
if (ev.keyCode == 40 || ev.keyCode == 9 || ev.keyCode == 38) {
that.ovo(cline);
clineObj = sug$("keyword" + cline);
if (clineObj)
tmp = clineObj.getAttribute("keys").toLowerCase();
sug$(inputid).value =
if (cline == tlines || cline == -1) {
$sForm.w.value = normalRid || 0;
SugPara['isSug'] =
} else if ($sForm.w) {
$sForm.w.value = suggestRid || 0;
SugPara['isSug'] =
var sugPings = new Array(); //ping back
function pingBack(act) {
if (globalsearchformaction.indexOf("") == -1)
var s1 = "http://61.135.188.217:8080/c.jpg";
var s2 = "/sugg.gif";
var url = "?w=" + encodeURIComponent(sug$(inputid).value) + "&k=" + bak + "&type=" + sugType + "&s=";
if (SugPara['isSug'])
url += "t";
url += "f";
if (cline != -1)
url += "&cline=" +
url += "&act=" +
url += "&r=" + new Date().getSeconds();
var V = sugPings.
sugPings[V + 1] = new Image();
sugPings[V + 1].src = s2 +
//disable sug
function disableSug() {
setCaretPosition(document.getElementById('query'),cursorPos);
enableSug =
pingBack("dis");
this.disableSug = disableS
function reCursorPos(){
cursorPos = getCursortPosition(document.getElementById('query'));
this.reCursorPos = reCursorP
function sug$(objName) {
if (document.getElementById)
return document.getElementById(objName);
return document.all[objName];
function getCursortPosition(ctrl) {
var CaretPos = 0;
// IE Support
if (document.selection) {
ctrl.focus();
var Sel = document.selection.createRange();
Sel.moveStart('character', -ctrl.value.length);
CaretPos = Sel.text.
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionS
return (CaretPos);
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
$sForm.query.onkeydown = sugCls.
var onoff = sugCls.
else if(basenum==2){
if(AdLoc4=='CN31'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN11'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN42'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN32'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN44'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN4403'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN4413'){
document.getElementById('TurnAD351').innerHTML ='';
else if(AdLoc=='CN4419'){
document.getElementById('TurnAD351').innerHTML ='';
document.getElementById('TurnAD351').innerHTML ='';
if(typeof(document.pv)=='undefined')document.pv = new Array();var _a=new Image();
_a.src='http://imp./201205/bd334e47d7be62f7f70a.php?a=99';document.pv.push(_a);
document.write('');}
showTurnAD351(intTurnAD351);
}catch(e){}
客服投诉热线:86-10-&&&&&违法和不良信息举报电话:86-10-&&&&&客服邮箱:&&&&&举报邮箱:}

我要回帖

更多关于 电脑屏幕字后面有阴影 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信