湖中沉 发表于 2011-9-6 11:34:34

Discuz! X2关联链接bug的临时解决方案

查了下代码,common_extra.js文件,29~387行,这里关联链接的关键字判断有问题,好像只处理了正文文本中第一个<br />之前的内容了,后面的都不做处理了;
relatedid = 1;后,下一个<br />之前的的内容就不处理,因为if条件里进行了!relatedid判断。
举个例子,后台设置关联链接词为:
1、电脑
2、电脑配件
3、笔记本
发帖内容为:
放到范德萨的萨芬电脑fdsalkj
街坊地块垃圾啊是否快乐电脑配件
房间打扫房了笔记本

那么只有第一个段落的电脑才会被js替换为关联链接。

提供一下临时解决方案:for(var j = 0; j < relatedlink.length; j++) {
            if(relatedlink && !relatedid) {
                var ra = '<a href="'+relatedlink['surl']+'" target="_blank" class="relatedlink">'+relatedlink['sname']+'</a>';
                var $rtmp = $3;
                $3 = $3.replace(relatedlink['sname'], ra);
                if($3 != $rtmp) {
                  relatedid = 1;
                }
            }
      }

for里面的 j > -1换成 j < relatedlink.length;,去掉else。
页: [1]
查看完整版本: Discuz! X2关联链接bug的临时解决方案