账号通
    

账号  

密码  

13932

查看

33

回复
主题:科讯CMS图片浏览和空间相册不兼容火狐的终级解决教程 [收藏主题] 本贴被认定为精华 转到:  
xyjyjlcy 当前离线

59

主题

0

广播

3

粉丝
添加关注
级别:学前班

用户积分:259 分
登录次数:43 次
注册时间:2011/12/28
最后登录:2016/11/21
xyjyjlcy 发表于:2012/3/30 17:22:00   | 只看该作者 查看该作者主题 楼主 
科汛在线商城系统(NET)
一、存在问题:

    使用科讯测试时发现,图片新闻的浏览,还有会员空间相册等,在IE下正常,但是火狐下不正常,表现为图片新闻在火狐下不能切换,也不出左右提示光标,在会员中心的相册中,也同样存在此类问题。



二、问题分析:

    存在以上问题一般为JS的代码不兼容火狐造成的,通过代码分析,主要有两个文件需要修改,一个是位于\Config\Picturelabel.xml文件,这是一个标签文件,主要用于图片标签的调用和浏览。另外一个文件是位于\KS_Cls\Kesion.SpaceApp.asp文件,是空间主类文件,空间相册修改位于此文件中。



三、修改兼容火狐的方法:(共三部分,代码相同,\Config\Picturelabel.xml两段,\KS_Cls\Kesion.SpaceApp.asp文件一段)

    打开\Config\Picturelabel.xml文件,共有两段内容需要修改,以其中一段内容为例:

找到以下代码:

  1. function upNext(bigimg){
  2.     var lefturl        = '{$PrevUrl}';
  3.     var righturl    = '{$NextUrl}';
  4.     var imgurl        = righturl;
  5.     var width    = bigimg.width;
  6.     var height    = bigimg.height;
  7.     bigimg.onmousemove=function(){
  8.         if(event.offsetX<width/2){//event.offsetX是出现问题的主要原因,因为火狐不支持这个属性
  9.             bigimg.style.cursor    = 'url({$GetSiteUrl}images/default/arr_left.cur),auto';
  10.             imgurl                = lefturl;
  11.         }else{
  12.             bigimg.style.cursor    = 'url({$GetSiteUrl}images/default/arr_right.cur),auto';
  13.             imgurl                = righturl;
  14.         }
  15.     }
  16.     bigimg.onmouseup=function(){
  17.         top.location=imgurl;
  18.     }
  19. }




修改为:

  1. function upNext(bigimg){
  2.     var lefturl        = '{$PrevUrl}';
  3.     var righturl    = '{$NextUrl}';
  4.     var imgurl        = righturl;
  5.     //var width    = bigimg.width;
  6.     //var height    = bigimg.height;
  7.     //bigimg.onmousemove=function(){
  8.         //if(event.offsetX<width/2){
  9.     //兼容火狐修改开始,上面的4行不兼容,没有用,关闭掉
  10.     bigimg.onmousemove=function(e){
  11.     var e=window.event || e,
  12.         posX=(e.offsetX==undefined) ? getOffset(e).offsetX : e.offsetX ;//通过别的方法获得,关键所在
  13.   if(posX<bigimg.width/2){
  14. //兼容火狐修改结束,到这里修改主函数就完成了,还需要其它的过程来获得event.offsetX相同的结果
  15. //event.offsetX只在IE支持,其它浏览器不支持,它是获得当前对象的鼠标左右移动的距离。
  16. //火狐中没有这个函数,但是需要左右光标提示切换,就需要通过别的方式获得如event.offsetX同样的结果
  17. //但是很麻烦的问题出现了,火狐等浏览器的event.layerX是不支持相对距离的,它是从网页最左边算起的,
  18. //于是想到了办法,就是利用一个绝对定位的标签来规定好起点,接着看后面的绿字部分
  19.             bigimg.style.cursor    = 'url({$GetSiteUrl}images/default/arr_left.cur),auto';
  20.             imgurl                = lefturl;
  21.         }else{
  22.             bigimg.style.cursor    = 'url({$GetSiteUrl}images/default/arr_right.cur),auto';
  23.             imgurl                = righturl;
  24.         }
  25.     }
  26.     bigimg.onmouseup=function(){
  27.         top.location=imgurl;
  28.     }
  29. }




找到代码:

  1. <div class="defaultimagesrc"><Img
  2. onload="javascript:resizepic(this)" onmouseover="upNext(this)"
  3. src="{$DefaultImageSrc}" border="0"></div>


修改为:

  1. <style type="text/css">
  2. .ruler{position:relative;} /*设置一个绝对定位CSS,在下面的IMG中调用*/
  3. </style>
  4. <div class="defaultimagesrc"><Img class="ruler" onload="javascript:resizepic(this)" onmouseover="upNext(this)" src="{$DefaultImageSrc}" border="0"></div>


到这里,这个函数的修改就结束了,但在大家应该注意到,在这个新的兼容过程调用中,用到了一个新的函数getOffset(e)它的代码是什么呢?

本文提供了另需要的函数源代码如下:(同时提供了科讯源文件修复下载,不会改的可以下载文件覆盖)

  

  1. <script type='text/javascript'>
  2.     //兼容火狐加入开始,这是一段万能代码,以后大家用于其它方面
  3. function getOffset(e)
  4. {
  5.   var target = e.target;
  6.   if (target.offsetLeft == undefined)
  7.   {
  8.     target = target.parentNode;
  9.   }
  10.   var pageCoord = getPageCoord(target);
  11.   var eventCoord =
  12.   {     //计算鼠标位置(触发元素与窗口的距离)
  13.     x: window.pageXOffset + e.clientX,
  14.     y: window.pageYOffset + e.clientY
  15.   };
  16.   var offset =
  17.   {
  18.     offsetX: eventCoord.x - pageCoord.x,
  19.     offsetY: eventCoord.y - pageCoord.y
  20.   };
  21.   return offset;
  22. }
  23. function getPageCoord(element)    //计算从触发到root间所有元素的offsetLeft值之和。
  24. {
  25.   var coord = {x: 0, y: 0};
  26.   while (element)
  27.   {
  28.     coord.x += element.offsetLeft;
  29.     coord.y += element.offsetTop;
  30.     element = element.offsetParent;
  31.   }
  32.   return coord;
  33. }
  34. //兼容火狐加入结束
  35. </script>


  

修改好的文件下载:(通过以上代码,完全可以自己动手修改就可以了,懒人可以下载下面的链接)

以下内容只有回复后才可以浏览,请先登录!


 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
xyjyjlcy 当前离线

59

主题

0

广播

3

粉丝
添加关注
级别:学前班

用户积分:259 分
登录次数:43 次
注册时间:2011/12/28
最后登录:2016/11/21
xyjyjlcy 发表于:2012/3/30 17:44:00   | 只看该作者 查看该作者主题 沙发 
科汛在线商城系统(NET)
对了,刚想起来科讯是有两种文件类型的,上面发布的下载是国标码的,对于使用UTF-8编辑的朋友,自己转一下就行了,也可以使用记事本打开你原来对应的UTF-8文件,再把以上下载的文件内容粘贴到里面保存就可以了,这样就格式就自动变为你的UTF-8编辑了。如此简单,所以就不重复发了。
本修改对应的版本为科讯CMS V8.03免费版,商业版的用户不要使用使用下载文件覆盖,因Kesion.SpaceApp.asp文件数据库操作存在差别,需要手动修改加入以上代码。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
quietlya 当前离线

1405

主题

0

广播

0

粉丝
添加关注
级别:九年级

用户积分:1287 分
登录次数:155 次
注册时间:2011/7/31
最后登录:2012/4/20
quietlya 发表于:2012/3/30 17:51:00   | 只看该作者 查看该作者主题 藤椅 
做在线知识付费 选科汛云开店

看下,不错,支持支持~~

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
hejian 当前离线

1201

主题

4

广播

4

粉丝
添加关注
级别:九年级

用户积分:3522 分
登录次数:563 次
注册时间:2006/12/26
最后登录:2024/1/21
hejian 发表于:2012/3/30 18:03:00   | 只看该作者 查看该作者主题 板凳 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
xiaoweize 当前离线

26

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:34 分
登录次数:7 次
注册时间:2012/2/11
最后登录:2013/2/26
xiaoweize 发表于:2012/3/30 18:29:00   | 只看该作者 查看该作者主题 报纸 
科汛在线网校系统
学习了 很不错的教程
 
电脑ktv软件http://www.hgjz001.com 录歌软件http://www.kgeruanjian.info
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
ygr1971 当前离线

1404

主题

44

广播

45

粉丝
添加关注
级别:版主

用户积分:8683 分
登录次数:124 次
注册时间:2011/11/13
最后登录:2021/11/2
ygr1971 发表于:2012/3/30 18:32:00   | 只看该作者 查看该作者主题 地板 
科汛智能建站系统
顶上.感谢精心的指导和分享.
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
刚刚 当前离线

1852

主题

5

广播

126

粉丝
添加关注
级别:版主

用户积分:7093 分
登录次数:225 次
注册时间:2010/7/6
最后登录:2024/4/15
刚刚 发表于:2012/3/30 19:00:00   | 只看该作者 查看该作者主题 7楼 
 
专业网站漏洞检测与修复及服务器安全维护、专业程序修改与二次开发及标签制作。QQ:2813239495 详谈
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
niegn1 当前离线

21

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:54 分
登录次数:68 次
注册时间:2012/3/8
最后登录:2012/6/20
niegn1 发表于:2012/4/1 15:36:00   | 只看该作者 查看该作者主题 8楼 
做在线知识付费 选科汛云开店
很好,这个是一定要支持的!
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
niegn1 当前离线

21

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:54 分
登录次数:68 次
注册时间:2012/3/8
最后登录:2012/6/20
niegn1 发表于:2012/4/1 15:36:00   | 只看该作者 查看该作者主题 9楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
niegn1 当前离线

21

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:54 分
登录次数:68 次
注册时间:2012/3/8
最后登录:2012/6/20
niegn1 发表于:2012/4/1 15:43:00   | 只看该作者 查看该作者主题 10楼 
可以下载,也已经用上了,不过感觉火狐下图片切换的不够流畅
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.25000秒 powered by KesionCMS 9.0